{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "fcb4d62d",
   "metadata": {},
   "source": [
    "![](https://www.nuplan.org/static/media/nuPlan_final.3fde7586.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8d454a26",
   "metadata": {},
   "source": [
    "### Contents\n",
    "\n",
    "1. [Introduction to nuPlan](#introduction)\n",
    "2. [Training an ML planner](#training)\n",
    "3. [Simulating a planner](#simulation)\n",
    "4. [Visualizing metrics and scenarios](#dashboard)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "844435a3",
   "metadata": {},
   "outputs": [],
   "source": [
    "from tutorials.utils.tutorial_utils import setup_notebook\n",
    "\n",
    "setup_notebook()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a3422a43",
   "metadata": {},
   "source": [
    "# Introduction to nuPlan <a name=\"introduction\"></a>\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2b27eb25",
   "metadata": {},
   "source": [
    "Welcome to nuPlan! This notebook will explore the nuPlan simulation framework, training platform as well as the nuBoard metrics/scenarios visualization dashboard."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "afead152",
   "metadata": {},
   "source": [
    "## What is nuPlan\n",
    "\n",
    "nuPlan is the world’s first closed-loop ML-based planning benchmark for autonomous driving.\n",
    "\n",
    "It provides a high quality dataset with 1500h of human driving data from 4 cities across the US and Asia with widely varying traffic patterns (Boston, Pittsburgh, Las Vegas and Singapore). In addition, it provides a closed-loop simulation framework with reactive agents, a training platform as well as a large set of both general and scenario-specific planning metrics.\n",
    "\n",
    "![](https://www.nuscenes.org/static/media/framework_steps.2d4642df.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d4ece3a3",
   "metadata": {},
   "source": [
    "## Training & simulation framework\n",
    "\n",
    "The nuPlan training and simulation framework aims to:\n",
    "* create a simulation pipeline to evaluate a planner on large dataset with various scenarios\n",
    "* score planner performance with common and scenario-dependent metrics\n",
    "* compare planners based on measured metrics and provide intuitive visualizations\n",
    "* train planners with the provided framework to allow quick implementation and iteration\n",
    "* support closed-loop simulation and training\n",
    "\n",
    "<br />\n",
    "\n",
    "![](https://www.nuplan.org/static/media/planning_framework.ca3c2969.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a1d23188",
   "metadata": {},
   "source": [
    "## Scenarios in nuPlan\n",
    "\n",
    "nuPlan aims to capture challenging yet representative scenarios from real-world encounters. This enables the benchmarking of planning systems both in expert imitation (open-loop) and reactive planning (closed-loop) settings.\n",
    "\n",
    "These scenarios includes:\n",
    "* highly interactive scenes with traffic participants (e.g. tailgating, high-velocity overtakes, double parked cars, jaywalking)\n",
    "* various ego behaviors (e.g. vehicle following, yielding, lane merging) and dynamics (e.g. mixed speed profiles, abrupt braking, speed bumps, high jerk maneuvers)\n",
    "* scene layouts of varied complexity (e.g. pudos, traffic/stop controlled intersections, unprotected turns) and temporary zones (e.g. construction areas)\n",
    "\n",
    "The dataset is automatically tagged with scenario labels based on certain primitive attributes.\n",
    "These scenario tags can then be used to extract representative metrics for the planner's evaluation.\n",
    "\n",
    "Example mined scenarios in nuPlan:\n",
    "\n",
    "| | | |\n",
    "| :-: | :-: | :-: |\n",
    "| Unprotected cross turn | Dense vehicle interactions | Jaywalker in front |\n",
    "| ![](https://www.nuscenes.org/static/media/unprotected-cross.51feef7e.webp) | ![](https://www.nuscenes.org/static/media/dense-interactions.16de47ec.webp) | ![](https://www.nuscenes.org/static/media/jaywalker.03083823.webp) |\n",
    "| Lane change | Ego at pickup/dropoff area | Ego following vehicle |\n",
    "| ![](https://www.nuscenes.org/static/media/lane-change.54bfca1c.webp) | ![](https://www.nuscenes.org/static/media/pickup-dropoff.4dd1c418.webp) | ![](https://www.nuscenes.org/static/media/following-vehicle.4cacd559.webp) |"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "652ebd82",
   "metadata": {},
   "source": [
    "## Database\n",
    "\n",
    "Download a database for training/simulation from [here](https://nuplan.org/nuplan#download).\n",
    "\n",
    "| Database | Size | Duration | Num Logs | Cities | Num Scenarios | Sensor Data | Description |\n",
    "| :-- | :-- | :-- | :-- | :-- | :-- | :-- | :-- |\n",
    "| nuplan_v1.1_mini (recommended) | 13GB | 7h | 64 | Las Vegas, Boston, Pittsburgh, Singapore | 67 | N/A | The mini split used for prototyping and testing |\n",
    "| nuplan_v1.1 | 1.8TB | 1282h | 15910 | Las Vegas, Boston, Pittsburgh, Singapore | 73 | N/A | The full dataset for training and evaluation|"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2064bbc1",
   "metadata": {},
   "source": [
    "## Setup\n",
    "\n",
    "To be able to access all resources within this notebook, make sure Jupyter is launched at the root of this repo. The path of the notebook should be `/notebook/<repo_root>`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "1dcf36e4",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/tmp/ipykernel_26623/4180358289.py:2: DeprecationWarning: Importing display from IPython.core.display is deprecated since IPython 7.14, please import from IPython display\n",
      "  from IPython.core.display import display, HTML\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<style>.output_result { max-width:100% !important; }</style>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<style>.container { width:100% !important; }</style>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# (Optional) Increase notebook width for all embedded cells to display properly\n",
    "from IPython.core.display import display, HTML\n",
    "display(HTML(\"<style>.output_result { max-width:100% !important; }</style>\"))\n",
    "display(HTML(\"<style>.container { width:100% !important; }</style>\"))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "12e18a2e",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Useful imports\n",
    "import os\n",
    "from pathlib import Path\n",
    "import tempfile\n",
    "\n",
    "import hydra"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "288d8db0",
   "metadata": {},
   "source": [
    "# Training an ML planner <a name=\"training\"></a>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "15d80acc",
   "metadata": {},
   "source": [
    "## Imitation learning\n",
    "In the following section we will train an ML planning policy with the aim estimate the ego's future trajectory and control the vehicle.\n",
    "\n",
    "The policy is learned through imitation learning, a supervised learning approach in which - in the context of autonomous driving - the behavior of an expert human driver is used as a target signal to supervise the model.\n",
    "\n",
    "## Model features & targets\n",
    "A planning policy consumes a set of episodic observations and encodes them through a deep neural network to regress a future trajectory.\n",
    "\n",
    "The observations can be historic or present ego and agent poses as well as static/dynamic map information across different map layers.<br />\n",
    "These signals can be encoded through various representations, such as raster or vector format for the map signal, each with their pros and cons for each model flavor.\n",
    "\n",
    "Using these input features the model predicts a discretized future trajectory across a fixed time horizon.<br />\n",
    "The trajectory consists of a set of discrete future states (position, heading and velocity) sampled at fixed intervals which express the likelihood of the vehicle being at that state in the future.<br />\n",
    "For example, a predicted trajectory may consist of 10 future poses sampled at intervals of 0.5s across a 5s horizon.\n",
    "\n",
    "## Learning objectives\n",
    "The policy is trained to maximize a set of aggregated objectives such as imitation, collision avoidance, traffic rule violation etc.<br />\n",
    "Imitation is the core training objective which indicates how close the predicted trajectory is to the expert ground truth and penalizes model predictions that deviate in space and time from the demonstration."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d0800a03",
   "metadata": {},
   "source": [
    "## Training parameters"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "602e5324",
   "metadata": {},
   "source": [
    "The following parameter categories define the training protocol which includes the model, metrics, objectives etc.\n",
    "\n",
    "A working example composition of these parameters can be found in the next section.\n",
    "\n",
    "---\n",
    "\n",
    "### ML models\n",
    "\n",
    "Change the training model with `model=X` where `X` is a config yaml defined in the table below. \n",
    "\n",
    "| Model | Description | Config |\n",
    "| --- | --- | --- |\n",
    "| Raster model (CNN) | Raster-based model that uses a CNN backbone to encode ego, agent and map information as raster layers<br />Any (pretrained) backbone from the TIMM library can be used (e.g. ResNet50, EfficientNetB3) | `raster_model` |\n",
    "| Vector model (LaneGCN) | Vector-based model that uses a series of MLPs to encode ego and agent signals, a lane graph to encode vector-map elements and a fusion network to capture lane & agent intra/inter-interactions through attention layers<br />Implementation of LaneGCN paper (\"Learning Lane Graph Representations for Motion Forecasting\") | `vector_model` |\n",
    "| Simple vector model | Toy vector-based model that consumes ego, agent and lane signals through a series of MLPs | `simple_vector_model` |\n",
    "\n",
    "<br />\n",
    "\n",
    "### Training objectives\n",
    "\n",
    "Change the training objectives with `objective=[X, ...]` where `X` is a config yaml defined in the table below. \n",
    "\n",
    "| Objective | Description | Config |\n",
    "| --- | --- | --- |\n",
    "| Imitation objective | Penalizes the predicted trajectory that deviates from the expert demonstration | `imitation_objective` |\n",
    "\n",
    "<br />\n",
    "\n",
    "### Training metrics\n",
    "\n",
    "Change the training objectives with `training_metric=[X, ...]` where `X` is a config yaml defined in the table below. \n",
    "\n",
    "| Metric | Description | Config |\n",
    "| --- | --- | --- |\n",
    "| Average displacement error | RMSE translation error across full predicted trajectory | `avg_displacement_error` |\n",
    "| Average heading error | RMSE heading error across full predicted trajectory | `avg_heading_error` |\n",
    "| Final displacement error | L2 error of predicted trajectory's final pose translation | `final_displacement_error` |\n",
    "| Final heading error | L2 error of predicted trajectory's final pose heading | `final_heading_error` |"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3ee66b84",
   "metadata": {},
   "source": [
    "## Prepare the training config"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "05860753",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Location of path with all training configs\n",
    "CONFIG_PATH = '../nuplan/planning/script/config/training'\n",
    "CONFIG_NAME = 'default_training'\n",
    "\n",
    "# Create a temporary directory to store the cache and experiment artifacts\n",
    "SAVE_DIR = Path(tempfile.gettempdir()) / 'tutorial_nuplan_framework'  # optionally replace with persistent dir\n",
    "EXPERIMENT = 'training_raster_experiment'\n",
    "JOB_NAME = 'train_default_raster'\n",
    "LOG_DIR = SAVE_DIR / EXPERIMENT / JOB_NAME\n",
    "\n",
    "# Initialize configuration management system\n",
    "hydra.core.global_hydra.GlobalHydra.instance().clear()\n",
    "hydra.initialize(config_path=CONFIG_PATH)\n",
    "\n",
    "# Compose the configuration\n",
    "cfg = hydra.compose(config_name=CONFIG_NAME, overrides=[\n",
    "    f'group={str(SAVE_DIR)}',\n",
    "    f'cache.cache_path={str(SAVE_DIR)}/cache',\n",
    "    f'experiment_name={EXPERIMENT}',\n",
    "    f'job_name={JOB_NAME}',\n",
    "    'py_func=train',\n",
    "    '+training=training_raster_model',  # raster model that consumes ego, agents and map raster layers and regresses the ego's trajectory\n",
    "    'scenario_builder=nuplan_mini',  # use nuplan mini database\n",
    "    'scenario_filter.limit_total_scenarios=500',  # Choose 500 scenarios to train with\n",
    "    'lightning.trainer.params.accelerator=ddp_spawn',  # ddp is not allowed in interactive environment, using ddp_spawn instead - this can bottleneck the data pipeline, it is recommended to run training outside the notebook\n",
    "    'lightning.trainer.params.max_epochs=10',\n",
    "    'data_loader.params.batch_size=8',\n",
    "    'data_loader.params.num_workers=8',\n",
    "])\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "162273a1",
   "metadata": {},
   "source": [
    "## Launch tensorboard for visualizing training artifacts"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "5acfc262",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "      <iframe id=\"tensorboard-frame-3b28b84795a63c08\" width=\"100%\" height=\"800\" frameborder=\"0\">\n",
       "      </iframe>\n",
       "      <script>\n",
       "        (function() {\n",
       "          const frame = document.getElementById(\"tensorboard-frame-3b28b84795a63c08\");\n",
       "          const url = new URL(\"/\", window.location);\n",
       "          const port = 6006;\n",
       "          if (port) {\n",
       "            url.port = port;\n",
       "          }\n",
       "          frame.src = url;\n",
       "        })();\n",
       "      </script>\n",
       "    "
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%load_ext tensorboard\n",
    "%tensorboard --logdir {str(LOG_DIR)}"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ff5edf94",
   "metadata": {},
   "source": [
    "## Launch training (within the notebook)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "62fb9600",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Global seed set to 0\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2023-04-25 17:27:33,573 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/folder_builder.py:20}  Building experiment folders...\n",
      "2023-04-25 17:27:33,574 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/folder_builder.py:22}  Experimental folder: /tmp/tutorial_nuplan_framework/training_raster_experiment/train_default_raster/2023.04.25.17.27.33\n",
      "2023-04-25 17:27:33,574 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/worker_pool_builder.py:19}  Building WorkerPool...\n",
      "2023-04-25 17:27:33,576 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/utils/multithreading/worker_ray.py:78}  Starting ray local!\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2023-04-25 17:27:35,528\tINFO worker.py:1553 -- Started a local Ray instance.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2023-04-25 17:27:36,566 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/utils/multithreading/worker_pool.py:101}  Worker: RayDistributed\n",
      "2023-04-25 17:27:36,567 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/utils/multithreading/worker_pool.py:102}  Number of nodes: 1\n",
      "Number of CPUs per node: 32\n",
      "Number of GPUs per node: 1\n",
      "Number of threads across all nodes: 32\n",
      "2023-04-25 17:27:36,567 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/worker_pool_builder.py:27}  Building WorkerPool...DONE!\n",
      "2023-04-25 17:27:36,567 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/training/experiments/training.py:41}  Building training engine...\n",
      "2023-04-25 17:27:36,567 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:27:36,864 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:27:36,978 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:27:37,006 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:27:37,006 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/splitter_builder.py:18}  Building Splitter...\n",
      "2023-04-25 17:27:37,865 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/splitter_builder.py:21}  Building Splitter...DONE!\n",
      "2023-04-25 17:27:37,866 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/scenario_building_builder.py:18}  Building AbstractScenarioBuilder...\n",
      "2023-04-25 17:27:37,880 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/scenario_building_builder.py:21}  Building AbstractScenarioBuilder...DONE!\n",
      "2023-04-25 17:27:37,880 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/scenario_filter_builder.py:35}  Building ScenarioFilter...\n",
      "2023-04-25 17:27:37,881 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/scenario_filter_builder.py:44}  Building ScenarioFilter...DONE!\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Ray objects: 100%|████████████████████████████████████████████████████████████████████| 32/32 [00:03<00:00,  8.87it/s]\n",
      "GPU available: True, used: True\n",
      "TPU available: False, using: 0 TPU cores\n",
      "Using native 16bit precision.\n",
      "Global seed set to 0\n",
      "initializing ddp: GLOBAL_RANK: 0, MEMBER: 1/1\n",
      "----------------------------------------------------------------------------------------------------\n",
      "distributed_backend=nccl\n",
      "All DDP processes registered. Starting ddp with 1 processes\n",
      "----------------------------------------------------------------------------------------------------\n",
      "\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2023-04-25 17:27:41,646 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/scenario_builder.py:171}  Extracted 500 scenarios for training\n",
      "2023-04-25 17:27:41,647 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/training/experiments/training.py:52}  Updating configs based on ddp_spawn strategy is currently not supported. Optimizer and LR Scheduler configs will not be updated.\n",
      "2023-04-25 17:27:41,650 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/training_callback_builder.py:19}  Building callbacks...\n",
      "2023-04-25 17:27:41,656 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/training_callback_builder.py:37}  Building callbacks...DONE!\n",
      "2023-04-25 17:27:41,659 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/run_training.py:62}  Starting training...\n",
      "2023-04-25 17:27:41,714 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/torch/distributed/distributed_c10d.py:194}  Added key: store_based_barrier_key:1 to store for rank: 0\n",
      "2023-04-25 17:27:41,714 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/torch/distributed/distributed_c10d.py:224}  Rank 0: Completed store-based barrier for 1 nodes.\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]\n",
      "\n",
      "  | Name  | Type        | Params\n",
      "--------------------------------------\n",
      "0 | model | RasterModel | 23.6 M\n",
      "--------------------------------------\n",
      "23.6 M    Trainable params\n",
      "0         Non-trainable params\n",
      "23.6 M    Total params\n",
      "94.438    Total estimated model params size (MB)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2023-04-25 17:27:44,106 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/training/data_loader/datamodule.py:47}  Number of samples in train set: 323\n",
      "2023-04-25 17:27:44,107 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/training/data_loader/datamodule.py:47}  Number of samples in validation set: 82\n",
      "2023-04-25 17:27:44,110 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/training/modeling/lightning_module_wrapper.py:196}  Using optimizer: torch.optim.Adam\n",
      "2023-04-25 17:27:44,110 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/lr_scheduler_builder.py:52}  Not using any lr_schedulers.\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/pytorch_lightning/trainer/data_loading.py:73: UserWarning: num_workers>0, persistent_workers=False, and accelerator=ddp_spawn may result in data loading bottlenecks. Consider setting persistent_workers=True (this is a limitation of Python .spawn() and PyTorch)\n",
      "  rank_zero_warn(\n",
      "/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/pytorch_lightning/callbacks/lr_monitor.py:97: RuntimeWarning: You are using `LearningRateMonitor` callback with models that have no learning rate schedulers. Please see documentation for `configure_optimizers` method.\n",
      "  rank_zero_warn(\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "41c75accb09241a187bddaf315e297df",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Training: 0it [00:00, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/torch/nn/functional.py:718: UserWarning: Named tensors and all their associated APIs are an experimental feature and subject to change. Please do not use them for anything important until they are released as stable. (Triggered internally at  /pytorch/c10/core/TensorImpl.h:1156.)\n",
      "  return torch.max_pool2d(input, kernel_size, stride, padding, dilation, ceil_mode)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2023-04-25 17:28:14,343 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/torch/nn/parallel/distributed.py:788}  Reducer buckets have been rebuilt in this iteration.\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/pytorch_lightning/trainer/callback_hook.py:100: LightningDeprecationWarning: The signature of `Callback.on_train_epoch_end` has changed in v1.3. `outputs` parameter has been removed. Support for the old signature will be removed in v1.5\n",
      "  warning_cache.deprecation(\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Validating: 0it [00:00, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Validating: 0it [00:00, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Validating: 0it [00:00, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Validating: 0it [00:00, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Validating: 0it [00:00, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Validating: 0it [00:00, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Validating: 0it [00:00, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Validating: 0it [00:00, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Validating: 0it [00:00, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Validating: 0it [00:00, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n",
      "[W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<nuplan.planning.training.experiments.training.TrainingEngine object at 0x7fb3e90d8d90>"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from nuplan.planning.script.run_training import main as main_train\n",
    "\n",
    "# Run the training loop, optionally inspect training artifacts through tensorboard (above cell)\n",
    "main_train(cfg)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cd570621",
   "metadata": {},
   "source": [
    "## Launch training (command line - alternative)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d6ad67e5",
   "metadata": {},
   "source": [
    "A training experiment with the above same parameters can be launched alternatively with:\n",
    "```\n",
    "$ python nuplan/planning/script/run_training.py \\\n",
    "    experiment_name=raster_experiment \\\n",
    "    py_func=train \\\n",
    "    +training=training_raster_model \\\n",
    "    scenario_builder=nuplan_mini \\\n",
    "    scenario_filter.limit_total_scenarios=500 \\\n",
    "    lightning.trainer.params.max_epochs=10 \\\n",
    "    data_loader.params.batch_size=8 \\\n",
    "    data_loader.params.num_workers=8\n",
    "```"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "184dc002",
   "metadata": {},
   "source": [
    "# Simulating a planner <a name=\"simulation\"></a>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "49758620",
   "metadata": {},
   "source": [
    "## Open-loop simulation\n",
    "Open-loop simulation aims to evaluate the policy's capabilities to imitate the expert driver's behavior.<br />\n",
    "This is essentially done through log replay as the policy's predictions do not affect the state of the simulation.\n",
    "\n",
    "As the policy is not in full control of the vehicle, this type of simulation can only provide a high-level performance overview.\n",
    "\n",
    "## Closed-loop simulation\n",
    "Conversely, in closed-loop simulation the policy's actions alter the state of the simulation which tries to closely approximate the real-world system.\n",
    "\n",
    "The simulation's feedback loop enables a more in-depth evaluation of the policy as compounding errors can cause future observations to significantly diverge from the ground truth.<br />\n",
    "This is important in measuring distribution shifts introduced due to lack of variance in training examples through pure imitation learning.\n",
    "\n",
    "Closed-loop simulation is further divided into two categories:\n",
    "* ego closed-loop simulation with agents replayed from log (open-loop, non reactive)\n",
    "* ego closed-loop simulation with agents controlled by a rule-based or learned policy (closed-loop, reactive)\n",
    "\n",
    "## Measuring success\n",
    "Measuring the success of a planning task and comparing various planning policies is a complicated effort that involves defining metrics across different vertical dimensions and scenario categories.<br />\n",
    "These metrics include indicators such as vehicle dynamics, traffic rule violations, expert imitation, navigation success etc.<br />\n",
    "Overall, they aim to capture the policy's ability to control the autonomous vehicle safely yet efficiently without compromising the passenger's comfort."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "04359006",
   "metadata": {},
   "source": [
    "## Simulation parameters"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ebef8382",
   "metadata": {},
   "source": [
    "### Planners\n",
    "\n",
    "Change the planner model with `planner=X` where `X` is a config yaml defined in the table below. \n",
    "\n",
    "| Planner | Description | Config |\n",
    "| --- | --- | --- |\n",
    "| Simple Planner | Naive planner that only plans a straight path | `simple_planner` |\n",
    "| ML Planner | Learning-based planner trained using the nuPlan training framework (see previous section) | `ml_planner` |"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "db903632",
   "metadata": {},
   "source": [
    "## Prepare the simulation config"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "112d1965",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Location of path with all simulation configs\n",
    "CONFIG_PATH = '../nuplan/planning/script/config/simulation'\n",
    "CONFIG_NAME = 'default_simulation'\n",
    "\n",
    "# Select the planner and simulation challenge\n",
    "PLANNER = 'simple_planner'  # [simple_planner, ml_planner]\n",
    "CHALLENGE = 'open_loop_boxes'  # [open_loop_boxes, closed_loop_nonreactive_agents, closed_loop_reactive_agents]\n",
    "DATASET_PARAMS = [\n",
    "    'scenario_builder=nuplan_mini',  # use nuplan mini database\n",
    "    'scenario_filter=all_scenarios',  # initially select all scenarios in the database\n",
    "    'scenario_filter.scenario_types=[near_multiple_vehicles, on_pickup_dropoff, starting_unprotected_cross_turn, high_magnitude_jerk]',  # select scenario types\n",
    "    'scenario_filter.num_scenarios_per_type=10',  # use 10 scenarios per scenario type\n",
    "]\n",
    "\n",
    "# Name of the experiment\n",
    "EXPERIMENT = 'simulation_simple_experiment'\n",
    "\n",
    "# Initialize configuration management system\n",
    "hydra.core.global_hydra.GlobalHydra.instance().clear()  # reinitialize hydra if already initialized\n",
    "hydra.initialize(config_path=CONFIG_PATH)\n",
    "\n",
    "# Compose the configuration\n",
    "cfg = hydra.compose(config_name=CONFIG_NAME, overrides=[\n",
    "    f'experiment_name={EXPERIMENT}',\n",
    "    f'group={SAVE_DIR}',\n",
    "    f'planner={PLANNER}',\n",
    "    f'+simulation={CHALLENGE}',\n",
    "    *DATASET_PARAMS,\n",
    "])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "12e79a0a",
   "metadata": {},
   "source": [
    "## Launch simulation (within the notebook)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "ba7aab5b",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Global seed set to 0\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2023-04-25 17:30:35,403 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/main_callback_builder.py:20}  Building MultiMainCallback...\n",
      "2023-04-25 17:30:35,492 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/main_callback_builder.py:35}  Building MultiMainCallback: 4...DONE!\n",
      "2023-04-25 17:30:35,655 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/worker_pool_builder.py:19}  Building WorkerPool...\n",
      "2023-04-25 17:30:35,656 WARNING {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/utils/multithreading/worker_ray.py:135}  Ray is running, we will shut it down before starting again!\n",
      "2023-04-25 17:30:37,990 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/utils/multithreading/worker_ray.py:78}  Starting ray local!\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2023-04-25 17:30:40,069\tINFO worker.py:1553 -- Started a local Ray instance.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2023-04-25 17:30:40,776 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/utils/multithreading/worker_pool.py:101}  Worker: RayDistributed\n",
      "2023-04-25 17:30:40,777 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/utils/multithreading/worker_pool.py:102}  Number of nodes: 1\n",
      "Number of CPUs per node: 32\n",
      "Number of GPUs per node: 1\n",
      "Number of threads across all nodes: 32\n",
      "2023-04-25 17:30:40,777 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/worker_pool_builder.py:27}  Building WorkerPool...DONE!\n",
      "2023-04-25 17:30:40,777 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/folder_builder.py:32}  Building experiment folders...\n",
      "2023-04-25 17:30:40,777 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/folder_builder.py:35}  \n",
      "\n",
      "\tFolder where all results are stored: /tmp/tutorial_nuplan_framework/simulation_simple_experiment/open_loop_boxes/2023.04.25.17.30.35\n",
      "\n",
      "2023-04-25 17:30:40,779 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/folder_builder.py:70}  Building experiment folders...DONE!\n",
      "2023-04-25 17:30:40,780 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/simulation_callback_builder.py:52}  Building AbstractCallback...\n",
      "2023-04-25 17:30:40,780 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/simulation_callback_builder.py:68}  Building AbstractCallback: 0...DONE!\n",
      "2023-04-25 17:30:40,780 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/simulation_builder.py:47}  Building simulations...\n",
      "2023-04-25 17:30:40,780 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/simulation_builder.py:53}  Extracting scenarios...\n",
      "2023-04-25 17:30:40,781 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/common/utils/distributed_scenario_filter.py:83}  Building Scenarios in mode DistributedMode.SINGLE_NODE\n",
      "2023-04-25 17:30:40,781 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/scenario_building_builder.py:18}  Building AbstractScenarioBuilder...\n",
      "2023-04-25 17:30:40,798 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/scenario_building_builder.py:21}  Building AbstractScenarioBuilder...DONE!\n",
      "2023-04-25 17:30:40,799 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/scenario_filter_builder.py:35}  Building ScenarioFilter...\n",
      "2023-04-25 17:30:40,800 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/scenario_filter_builder.py:44}  Building ScenarioFilter...DONE!\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Ray objects: 100%|████████████████████████████████████████████████████████████████████| 32/32 [00:02<00:00, 15.48it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2023-04-25 17:30:42,909 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/simulation_builder.py:74}  Building metric engines...\n",
      "2023-04-25 17:30:42,942 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/simulation_builder.py:76}  Building metric engines...DONE\n",
      "2023-04-25 17:30:42,942 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/simulation_builder.py:80}  Building simulations from 31 scenarios...\n",
      "2023-04-25 17:30:48,221 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/simulation_builder.py:133}  Building simulations...DONE!\n",
      "2023-04-25 17:30:48,221 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/run_simulation.py:78}  Running simulation...\n",
      "2023-04-25 17:30:48,221 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/utils.py:138}  Executing runners...\n",
      "2023-04-25 17:30:48,221 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/simulation/runner/executor.py:82}  Starting 31 simulations using RayDistributed!\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Ray objects: 100%|████████████████████████████████████████████████████████████████████| 31/31 [00:13<00:00,  2.22it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2023-04-25 17:31:02,230 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/simulation/runner/executor.py:127}  Number of successful simulations: 31\n",
      "2023-04-25 17:31:02,231 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/simulation/runner/executor.py:128}  Number of failed simulations: 0\n",
      "2023-04-25 17:31:02,231 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/utils.py:147}  Finished executing runners!\n",
      "2023-04-25 17:31:02,244 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/utils.py:74}  Saved runner reports to /tmp/tutorial_nuplan_framework/simulation_simple_experiment/open_loop_boxes/2023.04.25.17.30.35/runner_report.parquet\n",
      "2023-04-25 17:31:02,244 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/simulation/main_callback/time_callback.py:27}  Simulation duration: 00:00:26 [HH:MM:SS]\n",
      "2023-04-25 17:31:02,551 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/simulation/main_callback/metric_file_callback.py:79}  Metric files integration: 00:00:00 [HH:MM:SS]\n",
      "2023-04-25 17:31:02,580 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/simulation/main_callback/metric_aggregator_callback.py:58}  Running metric aggregator: open_loop_boxes_weighted_average\n",
      "2023-04-25 17:31:02,598 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/simulation/main_callback/metric_aggregator_callback.py:69}  Metric aggregator: 00:00:00 [HH:MM:SS]\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Rendering histograms: 100%|█████████████████████████████████████████████████████████████| 6/6 [00:01<00:00,  4.68it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2023-04-25 17:31:04,684 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/simulation/main_callback/metric_summary_callback.py:344}  Metric summary: 00:00:02 [HH:MM:SS]\n",
      "2023-04-25 17:31:04,684 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/run_simulation.py:80}  Finished running simulation!\n"
     ]
    },
    {
     "data": {
      "image/png": "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E6natWsjOzsbbdu2lVqchg0bJpV99epVmJiYQKvVAgCMjY2hUCgghICxsbG03uDBg5Gamoo33ngDVlZWHNySiKoc9nEyALxUVzno4n16to+TmZlZWUMrlcDAQCxbtqxC9vU89nEiosqOPweJqhl9JU1ERFUBO4cTGYDc3Fx9h1AhqstxElHVxcSJSI9MTU1hZmYmdeauDszMzIoMf0BEVJmw9iLSIyMjI9ja2la7KVeys7P1HQYRUZkwcSLSMyMjowrrGE5ERK+HncOJiIiIZGLiRERERCQTEyciIiIimZg4EREREcnExImIiIhIJiZORERERDIxcSIiIiKSiYkTERERkUxMnIiIiIhkYuJEREREJFOFJk7Jycnw9PTERx99hBUrVkjLExIS4O3tDW9vbyQkJODmzZvw9/dHYGAgAGDNmjW4fv16RYZKRERE9IIKTZwuX74MLy8vbNu2DRcvXpSWh4eHY8OGDdi4cSPWrVuHCxcuYOzYsSgoKEBSUhIKCgrQunXrEsvVaDRQq9VFHkRERETlrUITp65du2Lr1q3o2bMn+vXrJy1XqVSoV68eLCwskJWVBQ8PDxw5cgStW7dGeHg4bG1tsXz5cqSnpxdbbkhICCwsLKSHjY1NRR0SERERVSMVmjht374dS5cuxXfffYevv/5aWm5hYQGVSgW1Wo26devCwsICQUFBUCqV8PLywoULFzB16lTs2rWr2HIDAgKgUqmkR0pKSkUdEhEREVUjFZo49evXDxEREZg2bRpatGiBcePGAQD8/Pzg6+uLWbNmwdfXFwCQmZmJK1euwMXFBebm5ggJCYGTk1Ox5SqVSpibmxd5EBEREZU3hRBC6DuI8qZWq6VWrMqQRKU1k3dpsVma/JY0uWXqSmlirSx08T5VV5XtO0pEVIjDERARERHJxMSJiIiISCYmTkREREQyMXEiIiIikomJExEREZFMTJyIiIiIZGLiRERERCQTEyciIiIimZg4EREREcnExImIiIhIJhM5K129ehWRkZG4ffs2jIyMYGJiAg8PD0ycOBEmJrKKICIiIqr0ZGU93377LZYsWYL69etLy86cOYPTp0+jR48eOguOiIiIyJDISpz8/PwAAI8ePUJsbCwcHBzg7Oys08CIiIiIDI2sPk4PHz4EAKxbtw5vvvkmwsPDdRoUERERkSGS1eK0Zs0atGnT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7do11KpVCwUFBdi8ebNe50OLiIjAjh074OjoiA4dOuDRo0e4c+eO1DdMn32cno3N1tYWV69ehZmZGd544w2sWLFCb3ERERmqap04EREREZVGtb5UR0RERFQaTJyIiIiIZGLiRERERCQTEyciIiIimZg4EREREcnExImIiIhIJiZOVGlERUXh6NGjL13H0AYyJSKiqqVaT/JLhiEqKgpxcXGoWbMmmjRpgvz8fCQkJGD69OmIjY1Fbm4uhg0bhjNnzuDRo0cAAKVSia+//lp6LT09HSdPnkTnzp0xZ84c/R4QERFVWRwAk/QuKioKpqamGDNmDHr16oVTp05h+fLlOH/+PDp16gQAMDExgbW1NaysrDBo0CAMHjz4hddq1KhhUKO/ExFR1cMWJzII5ubmACBNgGtqaopHjx4hMDAQJiZPP6ZffvmltL5Wqy3yWlRUFCwsLCo4aiIiqm6YOJHBcnV1hY+PD9544w107twZ7du3R3BwMAoKCjB79uwirxEREVUEXqojIiIikol31RERERHJxMSJiIiISCYmTkREREQyMXEiIiIikomJExEREZFMTJyIiIiIZGLiRERERCQTEyciIiIimZg4EREREcnExImIiIhIpv8H0MZVkG5t6vcAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 600x600 with 6 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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UaMAAI0bN4adnR2uX7+OBg0a4Pjx4/jrr7+kMnJyckr0kowbNw4KheKpsR84cAA//fQTVq9eDQDIy8uDqakpAGDkyJGIi4uDm5sbjh8/jiZNmkjb9ejRA23btgUATJ48GSEhISgqKsKBAwdw9uxZdO7cGQBQVFRUor5BgwahadOmT42pNGUdPxsbG7z55ps4dOgQ3n//fWzduhVz5syR9q08sZRVx88//4wOHTrAwcEBAODj4wNfX18AwNWrV3Hp0iWMGDFCKic7OxuJiYno0qWL7P3Lz8/H8OHDMWDAALz33ntPXffAgQNQq9X48ssvpW0f/by9//77qF+/vvTczs4OLi4uUrwmJiZwc3MDAPTq1QtNmzbFhQsXYG1tjVq1amH06NFPrb927dro1KkTTp8+je+//x7z589HYGAgdDodfvjhB6xatUrWPrdu3Rr//Oc/AQDdu3dHWFhYmes+7ftRmlatWuGtt94CAHh5eWHy5MlITU3F999/j+HDh0s9WlOnTsX7778vK97iXt/i/69btw4AcPz4cXh5ecHKygoAMGXKFJw6dUpWmUSGwMSJKr3Hk5WUlBT4+fnh7NmzeO211/D777+jd+/eJdaxtLSU/m9qalpifElprwkhADz8o/7o64+qV6/eM2MVQuDLL7/EP/7xjydeKywsREJCAl566SWkp6c/s6zi8oKDgzF58uTnjulxzzp+48ePR0xMDDp37oykpCS4u7uXOxY571FphBB46aWXnnqa8VkKCgowfPhwNGvWDOHh4bLqXLdunXS67HGPH+NnHfNHP6916tSBicmzR0T069cP33//PU6cOIEVK1agffv2+Pzzz9GwYUO88sorz9weePpn/kXWLY1CoSj1R8Sjy8zMzEok1w8ePHiuGJ71Y4XI0DjGiSqd4jEXN27cwMmTJ5+4IkitVqNWrVpo1qwZhBDlGgNTlnr16qFPnz5YsWKFtOzWrVtIS0srVzkeHh4IDQ2V/ghkZWUhKSkJADB//nzY29vj5MmTmD17trQcAH766SdcuXIFwP8GAZuamsLDwwNRUVFSb01BQQHOnz9fZv1WVlbSGJOyPOv4eXh44OzZs1CpVBg9ejTMzMyk5XJjeVod3bp1w++//y715n3++efIz88HANjb28PKyqrEuJukpKQnehTLUlhYiBEjRuCll17Cv//9b1l/dD08PLBmzRrcv38fAHD//n1cunRJVn329vbQ6XT47rvvAABnzpzB7du3y30VWr9+/bBz5040aNAAdevWRb9+/fDhhx+iX79+pa4v532uSDdu3JCu6Nu7dy+aNm0Ka2tr9OvXD3v27IFGowEAbNq0SUpAW7dujV9//RVFRUW4f/++1KP3LP369UNsbCyys7MhhJDGexFVFuxxokqnqKgIb775JnJzcxEREfHEabr27dtjxIgReOONN9CoUSPpUvQXtWPHDgQGBqJdu3ZQKBSoW7cuNm3a9NRTGI9bs2YN5s+fj06dOsHExARmZmZYuXIlrly5gmPHjuGXX35BnTp1sHr1anh5eeHMmTMAHp6qmzdvHpKSktCoUSNs374dwMNTKpmZmdLVVIWFhRg/fjzefPPNUuufMWMGJk2ahDp16mDr1q2l/gF/1vGzsLCAl5cXNm7ciMuXL0vLyxPL0+p4+eWXER0dDQ8PD1hYWKB///6oV68eGjRoADMzMxw+fBgzZ87EmjVrUFRUhMaNG2Pnzp2yjv/u3buxb98+dOjQQYqrZ8+e2LBhQ5nbzJs3D1qtFv/85z+lRGvevHl44403nlmfubk59u3bhxkzZiAoKAiWlpbYu3cv6tWrh7t378qKGQCcnJygVqul02H9+/eHn5+f9PxxY8aMwbhx43DgwAFMnz4drVu3ll3X83jjjTewdetWzJgxA+bm5ti1axcUCgUGDhyIhIQEdO/eHSYmJujQoQM2btwIABg6dChiY2PRtm1bWFtb480335SS06cZNGgQfvnlFzg6OsLKygoDBw7U674RlZdCFJ+jIKoEFAoFsrKySlwFVN1t3boVBw4cwIEDB4wdisFkZ2dL44YOHDiA4ODgEkkaEVFlxR4nIjK4devWYffu3SgqKoKVlVWZt50gIqps2ONEVE5HjhzBggULnlgeHByM4cOHGyGi0n300UfYt2/fE8u//PJLvPbaa0aI6PnduXOn1MHb/fv3l3XV2YULF6R7CD3Kx8cHs2bNqogQn6myvx9OTk5PDNB+4403mNQSPYaJExEREZFMvKqOiIiISCYmTkREREQyMXEiIiIikomJExEREZFMTJyIiIiIZGLiRERERCQTEyciIiIimZg4EREREcnExImIiIhIJiZORERERDIxcSIiIiKSiYkTERERkUxMnIiIiIhkYuJEREREJBMTJyIiIiKZmDgRERERycTEqQpzcnIydgh6c+HCBfzyyy9PXWfTpk147bXXSiyrX78++vTpgz59+mD8+PG4e/cuAGDx4sVo3749XF1d4erqih9//PGJ8m7cuAFPT89yx3r79m0sWrSo3Ns9y6effgpnZ2d069YNwcHBFV4+UUVjm1S926RHYw4KCqrw8qsKM2MHQJWfTqeDiYnhcmydTocLFy4gJycHXbt2LXO9r776Ci4uLjh37hw6d+4MALC3t0dcXBwAIDo6GlOnTkVsbCwAQKVS4Z133qnQWIUQaNq0KZYsWVKh5QLA6NGjMX78eACAq6sr0tLSYG1tXeH1EFU1bJPKps82CdBPzFUNe5yqiPj4eAwYMACDBw9Gly5dcPHiRem17777Di4uLujSpQtWrFgBANi6dSuGDRsmrf/nn38CANq2bQsfHx906tQJO3bsAAAkJyfDzc0Nrq6umDVrlrT9iBEjMHjwYBw7duyJeErbZuHChdi2bRvy8vLg7OyMO3fuYPHixRg5ciTc3d3h7u6O7OxsAMDy5cvh4uKC3r17S/vi6OiIgIAAjBkzBpGRkQgPD8eAAQNKPR4ZGRmoXbs2fH19pUbocRMnTsT58+dRVFQk+zj/+eefGD58ONq3b48ffvgBABAXF4du3bqhW7du2L59OwBg3LhxmD59OgYMGIBff/0Vnp6eKCoqkn49Ojg4ICgoCBqNBkOGDIGLiwtGjBiB/Px8xMfHw93dHe+99x46duyIhISEUmMxNzcHABQWFqJhw4Z46aWXZO8Hkb6xTSqpJrRJAPCvf/0LLi4uUiw1kqAqIS4uTvTs2VPodDqRmJgoBg8eLDp37iyEECI3N1cIIURRUZFwcnIS9+/fFzExMeKDDz4QQgixceNGER4eLoQQokGDBkKtVgu1Wi26du0qhBDi/fffF0lJSUIIIXx9fcXZs2dFTEyMGD16dJnxlLaNVqsVvXv3Ft7e3mLv3r1CCCEWLVokgoODhRBCREZGik8++URcvHhRjB07VgghRHp6uhgyZIgQQohWrVqJP/74QwghRExMjFi3bl2Z9W/atEns2rVLCCFE//79peXFx6TYP//5T3H79m2xaNEi0a5dO+Hi4iJcXFzElStXnijz+vXr4h//+IcoKCgQiYmJ4r333pPKyMjIEPn5+aJz587i/v37wsfHR0RHR0vbDRs2TConKytLuLq6itTUVLFq1SoRGRkphBDio48+Etu2bRNxcXGib9++Qgghjhw5ImbNmlXmfqpUKtGqVSsxefLkMtchMga2SSXVhDYpMzNTCCHE7du3Rbt27YRWqy3zeFRn7HGqQt58800oFAq0bdtW+rUGAOfOnUO/fv3Qp08f3LhxA3fu3JHWBwAbGxtkZWUBAOzs7GBlZQUrKyvpV8+VK1cwYcIEuLq64pdffkFaWhoAoEuXLmXGUto25ubmGDFiBP7v//4Pw4YNk9Yt7rLu0qUL/vjjDyQmJuLMmTNwdXXFqFGjkJOTAwBo2LAhWrduLetYHDhwAJs3b4a7uzuSk5Px22+/lbre3bt30aRJEwAPu5jj4+MRHx8Pe3v7Utdv164dzMzMShyzoqIiNG7cGLVq1ULr1q1x69atMo9PUVERfHx8EBoaCmtrayQlJUnrFe8/AHTq1AlAyfemNPPnz0dSUhL+/PNP/PzzzzKODJHhsE36n5rQJhX3ejdt2hRt27aV3peahmOcqpALFy5ACIH//ve/aNasmfRlWblyJaKiomBnZwdHR0cIIQAACoVC2ra0ZcXs7e0RFhYGW1tbCCFQVFSEzz///KljCErbJjMzEzt37sSoUaMQGRmJqVOnAgDOnz+PYcOG4ddff0Xr1q3h4OAAFxcXREdHAwAKCgoAoER9tWrVKrM7++7duzA3N8eRI0cAAL/88gtiY2Ph6OhYYr2YmBg4OTmVayxEacfMxMQEd+/ehVKpxB9//IHmzZs/EW+xmTNnYsSIEdI4iNatW+OXX35B586dcfbsWbRp06bMeh6n1WphYWEBU1NT1K1bF3Xq1JG9H0SGwDbpoZrSJmk0GlhZWeH+/fu4cuUKmjVrJns/qhMmTlWIUqnE4MGD8ddff2HLli3SwOFhw4bhvffeQ/v27VG/fv1ylxsaGgpfX188ePAApqam+PTTT59rm/nz52PlypXo2rUr3N3dpbEAqampGDBgABQKBWJjY2FlZYU2bdrAxcUFJiYm6N+/PxYsWFCi/O7du2Ps2LH4v//7P+zcubPEa/v374eLi4v0vHPnzpg6dSpUKhWuXr2KPn36AABee+01bNiwQVovODgYYWFhAIDAwEAMGTJE1vFZvnw53n77bSgUCvj5+aF27dqlrpeamoqYmBhcvHgRmzZtgqenJyZNmgRvb2988cUXaNq0KebNm4czZ87Iqrf412hhYSH69OmDDh06yNqOyFDYJj1UU9qkOXPm4OLFiygqKsKCBQvKrLe6U4iyUkuqVOLj43H48GHpS1ZVLF68GE5OTjX+Kgyi6oZtEtVU7HGiZwoODsZPP/0kPe/fvz8WLlxosPoHDhyIvLw86fmcOXPw9ttvv1CZV69exZQpU0os27FjB1q0aPFC5T4vYx9joqrE2N8Xtkk1G3uciIiIiGTiVXVEREREMjFxIiIiIpKJiRMRERGRTEyciIiIiGSqllfV6XQ63Lp1C/Xr1y/15mpEZFxCCGRnZ6N58+YGnazVWNgmEVVu5WmT9Jo4HThwAF9//TU0Gg0mTJiAixcv4vr16ygoKEBUVJTUgAgh4OvrCzMzM9jZ2SEoKAgLFixAfn4+pk2bBgD48ssvMWfOHFn13rp1CzY2NnrbLyKqGKmpqbC2tjZ2GHrHNomoapDTJuk1cfLw8ICHhweysrIQGBiI/Px87NixA+vXr8epU6fg7OwMADh16hTatWsHf39/jBkzBvn5+RBCYOTIkTh37hxOnz6NlStXllmPVquFVquVnhffYSE1NRVWVlb63EUieg4ajQY2NjbPdVfpqqh4P9kmEVVO5WmTDHKqbunSpZg4cSJiY2MBALa2tiUmB0xLS5N+jb388svIzMxEmzZtcPjwYbzyyivo2rUrwsLC0L59ewwePPiJ8lUqFZYsWfLE8uKJI4kqM51Oh/z8fGOHYTDm5ubS/2vKaavi/WSbRFVBYWEhCgsLjR2GQZibm5c4NSenTdJr4iSEwPz58zFw4EB06dIFkZGRAICUlJQS825ZW1vjP//5DwAgIyMDjRo1wvjx45GVlYWwsDAolUr4+vpi5cqVpSZOwcHBCAwMlJ4XZ45ElZ1Op8PNmzfx4MEDY4diMJaWlmjYsKGxwyCixwghcOvWLWg0GmOHYjCWlpawtbUt1zZ6TZzWrVuH77//Hmq1GklJSXB0dERAQAC0Wi2mTZuG2NhYWFhYYPDgwdi5cycCAgLQsWNH6RfpqlWrMHv2bCQmJmL58uVo1KhRqfVYWFjAwsJCn7tCpBf5+fl48OABXnnllRoxYWZeXh5u375dY37NElUlWq0WGo0GjRo1qhEXMhS3R+Xt8a+WU65oNBoolUqo1Wp2i1Ol9uDBA1y/fh2vvvoqMl9rI3u7FumpTyzbtWsX/vjjD9SrVw92dnbw8PB4ZjmLFy9GSEgIzMz+9xtq5syZaNGiBfLy8tCyZUv06tULrVu3lh3b0xTvb5MmTdCkSZMa8x1lm0RVwaPtkaWlJdJbyD9zUxXbpEf3Nz8/X/Z3tFrejoAg+wNf2oedqqb09HS0aNECbm5uiIqKwoULF9CoUSMkJCSgY8eOuHjxIiIjI9GvXz+8//77aNasGYCHjceiRYvQqFEjODs7o169epgzZw5mzpyJli1bAgC++OILXLlyBV27dsWdO3dw584dJCUlISIiAqNHj4abmxt0Oh0cHBzw448/Ijc3Fx9//DGGDBmCWbNmwc3NzZiHpsZ70T+AVb3+qqQ6td3VtU2q/jdQIaohZs+eDRcXFyxcuBC3b98GAEyaNAmNGjXC5MmTpV9RDg4OmDJlCk6ePAkAuHz5MrRaLZo3b44bN24gJycHq1atkq56BQC1Wg1bW1tpm3fffRfdu3dHeno62rRpg0mTJiE1NRWHDh1Cy5YtUa9ePdy5cweOjo5MmohqqOraJjFxIqomDh06hIMHD6J27dpo0KABAMDMzAwmJiYwMzOTxiskJiZi5cqV6NWrF4CHjVbdunWRk5ODdu3aSb/uhg0bJpV9+fJlmJmZQafTAQBMTU2hUCgghICpqam03uDBg5GWloaXXnoJjRs3rhE3tySi0lXXNoljnKqp6tTdW509PqbAEEJCQrB06VKD1PU4jnEyzv4a+1SZseuvSozZdhujPQKM1yY97xgn/hwkqmGMlTQREZWmqrVJHBxOVAnk5eUZOwSDqCn7SVSVaTQaCCFqxO0IngcTJyIjMjc3h6WlpTRwsiawtLQscamxoSQnJ2PZsmVQq9XYu3cvPvjgA5ibmyM/Px/R0dHSuIiKnjuTqKqwsLCAlZUVMjMzkZmZaexwDMLS0lJqB+Ri4kRkRCYmJrC1ta1xU67k5OQYvF47Ozts2bIFnp6eAICYmBgAQEBAQIlJeF907kyiqkqhUKBFixZo2rRpjblJ7eNTrsjBxInIyExMTAw6EJP+58qVK9BqtSWmaHrRuTOBJycer0lTWFDVZ2ZmZpRe4aqCg8OJqEZKSEhAWFgYIiIiSiy3traWJiF/dO7MGTNmICUlBWlpafD19cXp06fLLFulUkGpVEoPzp1JVH3oNXFKTk7GhAkTpK7xefPmwdfXF2+++Sa++eabEuu+9tpr8PX1xb///W8AwIIFCzB79mwkJycjOTkZq1at0meoRFTNZWZmwtfXF+fPn8eyZcvQv39/6HQ6zJgxA2lpaYiNjcWhQ4fQq1cvXLp0qdS5M4OCgtCjRw8sX74cSqWyzLqCg4OhVqulR2pqzb7Enqg6Mch9nDw9PbF3717p+TvvvIODBw+WuElVx44d0alTJ4wYMQIDBw5EcHAwPD09kZycLI0pKG7AHldat7iNjU2NuUdMaXgfJ6rMjH1fI0Mz9v4a+z5Kxq6/KmHbbRzl+Y4a/FTdL7/8AkdHxxJJEwCcP38en376KcLDwwFAGlNw7949aUzBV199VWqZ7BYnIiIiQzB44hQdHY3x48c/GYiJCUxNTWFpaQmdTleuMQXsFiciIiJD0Ouw+czMTCxcuBDnz5+HSqWCn58f7t69i1atWgEAfvrpJ5w/fx5vvfUWQkNDAQCurq7SpYGrVq3C7NmzkZiYiOXLl6NRo0al1mNhYQELCwt97goRERER56qrrnienCqzmvYdNfb+GnuMkbHrr0rYdhtHpR7jRERERFRVMXEiIiIikomJExEREZFMTJyIiIiIZGLiRERERCQTZ/HTE15FQkREVP2wx4mIiIhIJiZORERERDIxcSIiIiKSSa9jnJKTk7Fs2TKo1Wrs3bsXAwcOhK2tLerVq4ewsDBpPSEEfH19YWZmBjs7OwQFBWHBggXIz8/HtGnTAABffvkl5syZo89wiagae7w92rlzJ+Li4qDVahEZGYm6detK686fPx/3799HnTp1sGLFCqxYsQI5OTl455134ODggNDQUKhUKiPuDREZi157nOzs7LBlyxbpeZ06daDT6dC0adMS6506dQrt2rXDhg0bcOHCBeTn50MIgZEjR+LcuXOIiIhAQECAPkMlomru8fZo//792Lx5M7y8vLBv3z5peUpKCgoKChAREYGioiKkpqZCrVZj1qxZOHnyJMLCwjB79mxj7AIRVQIGPVUXGxuLf//73/jzzz/x+++/S8vT0tJgY/PwKrSXX34ZmZmZaNOmDQ4fPox79+6ha9euCAsLw1dffVVquVqtFhqNpsSDiOhpFAoFAMDW1hZpaWnS8vT0dKk9atmyJdLS0tClSxdERESgZcuWaN68OTZt2oTPP/+8zLLZJhFVXwZNnExMHlb38ssvIycnR1pubW0tNVwZGRlo1KgRxo8fjxkzZiAlJQVpaWnw9fXF6dOnSy1XpVJBqVRKj+JGj4joWVJSUmBtbS09b9GihdQepaamwtraGkOHDkVISAjOnDmDxo0bw93dHQkJCWWWyTaJqPrSa+KUmZkJX19fnD9/HiqVCj4+Ppg6dSquXbuGbt26ITY2FocOHUKvXr1w6dIlBAQEoGPHjjA3NwcArFq1CkFBQejRoweWL18OpVJZaj3BwcFQq9XSIzWV90UiopIeb488PDwwdepUxMbGYujQofjpp5+wceNGtGzZErVq1UJgYCBMTU2lpCciIgL+/v548803ERMTAyFEmXWxTSKqvhTiad/+Kkqj0UCpVEKtVsPKysooMRj7Bphy6+fNN8kYKsN31JCMvb9VpT3SV/1VCdtu4yjPd5R3DiciokqDSRZVdryPExEREZFMTJyIiIiIZGLiRERERCSTrDFOly9fRlRUFG7cuAETExOYmZnBzc0N48aNg5kZh0kRkWGxTSIiY5HVwnz77bdYvHgxGjZsKC07deoUTp48iT59+ugtOCKi0rBNIiJjkZU4FU93cv/+fRw9ehSOjo7o1auXXgMjIioL2yQiMhZZY5zu3bsHAFi3bh1effVVhIeH6zUoIqKnYZtERMYiq8dpzZo1aNu2LZo3b449e/ZId/YmIjIGtklEZCyyEqePP/4YZ86cQWxsLPz8/PDaa6/pOy4iojKxTSIiY5GVOIWFheHevXvo2bMnDh48CIVCgVmzZj1zu+TkZCxbtgxqtRp79+7FBx98AHNzc+Tn5yM6OhqmpqYAgBs3bsDDwwPdunVD//794eHhgcDAQADARx99hEuXLuHatWsYM2bMC+wqEVUXz9smERG9KFljnNRqNebOnYuEhAQEBgZiyJAhsgq3s7PDli1bpOcxMTHYtGkTrKyscOvWrRLr1qtXD/fv30fLli2RmZmJVq1aoXfv3khISMDu3buZNBGR5HnbJCKiFyWrx2nQoEGIjo7GxIkTAeCFusWvXLkCrVYrzTgOALa2tjh16hTu37+PESNG4NChQ9K6ycnJcHFxgUqlQq9eveDs7PxEmVqtFlqtVnqu0WieOz4iqvwqsk0iIioPWT1ON2/exMyZM2FtbS0tu3btGn7++edyVZaQkICwsDBERESUWK5QKAAAderUkZbNmjULw4cPh4mJCc6ePYv58+fj66+/LrVclUoFpVIpPR5Nyoio+qmoNiklJQUeHh4YP348VqxYIS1PSEiAt7c3vL29kZCQgGvXriEoKAghISEAHg5Ov3r1asXsDBFVKbJ6nJo1a4YpU6YgMzNTuktv9+7dMXny5Kdul5mZiYULF+L8+fNYtmwZ1q9fj4EDB2LGjBkICQnBTz/9BAsLCzRs2BDbt2/H/fv3MWrUKGn7devWYdWqVThw4AA+/PBDtGrVqtR6goODpTFRwMMeJyZPRNXX87ZJj7t48SI8PT0xevRoDB8+XFoeHh6ODRs2QKFQYO7cuXjrrbcwevRo7N69G8nJySgsLIS9vX1F7xYRVQEKIYQwdhAVTaPRQKlUQq1Ww8rKyigxpLeQn7i1SE81Wv36qJvoWSrDdxR4+OPO09MTCoUCY8aMwQcffAAA8PLywp49ewAAo0aNQmRkJNauXYuWLVviwoUL6NmzJ5KSkjBu3Dg0b978iXJLGz5gY2NjtP2tKu1ReVXH9ottt3GUp03iJL9EVGPFxMRgyZIl+OGHH0oMBShuQDUaDerXrw+lUolFixbBwsICnp6eOHfuHKZMmYIdO3aUWi6HDxBVX0yciKjGcnd3R0REBHx9fdGqVSvp6t2AgAD4+/vDz88P/v7+AICsrCxcunQJzs7OsLKygkqlQs+ePUstNzg4GGq1WnqkprJ3gKi6kH2qbuzYsRg5ciQGDhyo75heWGU4DVBVusbZ3UvGUBHfUbZJ8lWV9qi8qmP7xbbbOPRyqi46OhoZGRkYMWIEwsPDkZub+8KBEhE9L7ZJRGQMshOnzMxMJCcnw8rKCq+88gomTJigz7iIiJ6KbRIRGYOs2xEAD6c4mD59Ouzs7ACAgx2JyKjYJhGRMcjucXJ1dZUaqKNHj6JHjx56C4qI6FnYJhGRMchOnE6cOCH9/+TJk3oJhohILrZJRGQMsk/VZWRk4Pjx41AoFPjzzz/1GRMR0TOxTSIiY5Dd4xQREYH//ve/uHr1KsLDw/UZExHRM7FNIiJjkJ04paSkQK1W486dO1i7dq2sbZKTkzFhwgR4enoCAHbu3IlJkyZh7NixT1w6PH/+fMyYMQPz588HAKxYsQIhISH4+eef8ffffyM4OFhuqERUAzxPm0RE9KJkJ06rV6/GO++8gxEjRpSYDPNp7OzssGXLFun5/v37sXnzZnh5eWHfvn3S8pSUFBQUFCAiIgJFRUVITU2FWq3GrFmzcPLkSYSFhWH27Nnl2C0iqu6ep00iInpRssc4tWvXDu3atXuhyhQKBQDA1tYWFy9elJanp6dLlxK3bNkSaWlp6NKlCyIiIvD6668jMzMTmzZtQsuWLTF69Ognyi1tQk0iqt4qok0iIiov2YlTXFwc4uPjYWFhAYVCIc0c/jxSUlJgbW0tPW/RogXS0tIAAKmpqfDw8ED37t0xePBgzJ49Gz179kS3bt3KrFOlUmHJkiXPHQ8RVT0V2SYREcklO3HatWsXLl++jC5dukhJzrNkZmZi4cKFOH/+PFQqFTw8PDB16lTk5eVhw4YN+Omnn3D+/HlMmzYNtWrVQmBgICwsLKTep4iICPj7+0MIgYiICNSpU6fUeoKDgxEYGCg912g0vBkeUTX3PG0SEdGLkj3J76RJk2Bubo4NGzZg+vTp2LBhg75je27GnlAT0M+kmvqYKLM6ThRp7AlN6dkq4jtaXdukqtJ2VAbV8furj0l+OXHws+llkt/69eujadOmAABLS8sXi5CI6AVVRJuk0+mwcOFC+Pv7Y9u2bdLyhIQEeHt7w9vbGwkJCbh27RqCgoIQEhICAFizZg2uXr364jtBRFWO7MSpcePGOHPmDGbPng0TE9mbERHpRUW0SQcPHkRaWhpq1apVYtxleHg4NmzYgI0bN2LdunU4d+4cRo8ejcLCQiQnJ6OwsBD29vYVtStEVIXIHuO0YMECDB06FEIItG3bVp8xERE9U0W0SVevXkWPHj0wZcoUeHp64q233gIAqNVqNGjQAACQnZ0NNzc3rF27Fvb29ggPD0fPnj2xfPlyjBs3Ds2bN3+iXF7pS1R9yU6cRo4cCYVCgfv37wMADhw4oK+YiIieqSLaJGtra5ibmwMATE1NpeXFYx0UCgXq168PpVKJRYsWYefOnfD09MThw4cxd+5cfPrpp5gzZ84T5fJKX6Lqq1xX1RVbvXq1XoIhIpKrItqkoUOHwt/fHydPnkTv3r0xZswYfPbZZwgICIC/vz8AYO7cuQCArKwsXLp0CaNGjcKJEyegUqkwdOjQUsvllb5E1ZfsxCkxMREAUFhYKP2fiMhYKqJNqlOnTonZDaZPnw7g4c01t2/fXmLdhg0bYtmyZQCAhQsXPrVcCwsLWFhYPFdMRFS5yU6cYmNjoVAoYGFhIf0SIyIyFrZJRGQMshMnJycnacqU9PR0pKenY9CgQXoLjIjoadgmEZExyE6coqOj0atXLwDA6dOn4eHhoa+YiIieiW0SERmD7MTJwcEBQUFBAICMjAyMHTtWb0ERET0L2yQiMgbZiZNCocDEiROhUCiku/WW18mTJ7Fjxw5pMOeZM2cAAIsXL8bly5fRsGFDfPjhh7hx4waOHDkCKysrzJ07FyEhIZg5cyYaN278XPUSUfVTEW0SEVF5yU6cli5dirS0NDRo0OC5pzdwdnaGs7MzDhw4gC5duvwvCDMzmJubo1atWmjQoAFOnTqFoKAghIaG4vTp03BwcHhq0sSbzRHVPBXRJhERlZfseQpmzpyJJUuWwMrK6oWvYNm5cydGjRolPV+wYAE+++wz9O/fH9HR0Rg5ciTWrl0LR0dH7NmzBzqdDiqVCjk5OaWWp1KpoFQqpQfvl0JU/VVkm0REJJfsxMnU1BS2trYAHt5V93mlpKRAqVSifv36/wvi/88z9fLLLyMnJwc2NjZYsmQJUlNT4efnh0uXLmHAgAE4evRoqWUGBwdDrVZLj9TUmjvDM1FNUVFtEhFRecg+VWdhYYHLly9j/fr1yMrKeu4Kt2zZgg8++AAApLv0Ll++HKmpqbh79y4iIiIAAElJSQCANm3aQKfTYdu2bQgICCgzNt5sjqhmqag2iYioPBRCCPGslYQQ+PXXX5GZmQmdTgc3N7cS8zpVNhqNRpprysrKyigxpLeQf7qwRbq8HrLylFnRdVcl+jj2VLFe9DtandukqtJ2VAbV8fsr970qz77ro8zqpjzfUVk9TgqFAnFxcdKcTURExsQ2iYiMRfapukOHDuH48eOwsrKCQqHAnj179BkXEdFTsU0iImOQlTgdOnQIp06dwu+//44OHTroOyYioqdim0RExiIrcTp27BiGDBmCqKgobNy4Ud8xGRzP/1a8qnJMOW6saqqoNik3NxcuLi5YvHgx3nnnHQBAXFwctm7disLCQqxatYo35CWiEmQlTjdv3sSRI0ekfwFwMk0iMpqKapNCQ0Ph5eVVYllUVBR27dqFxMREbNmyBRYWFuW6IS8RVW+y7uPk5eWFjIwM6d+7d+/qOy4iojJVRJv03Xff4fXXX8fLL79cYrkQAiYmJrC1tUVaWlq5b8gLPJzNQKPRlHgQUfUgq8fJx8dH33EQEclWEW1SfHw8cnNzkZiYiNq1a2PQoEEwMTGBiYkJdDodUlJSYG1tLd2Q95NPPoGfnx+io6Ph5eWFo0eP4v333y+1bJVKhSVLlrxwjERU+ci+qo6IqDpZtmwZAGDr1q1o3LgxfHx88Nlnn2Hy5MmYOHEiCgoKEBoaCqB8N+QFHs5mEBgYKD3XaDScCoqommDiREQ12rhx4wBAGhzet29f9O3bt8Q6rVu3RlBQEABg1apVzyyTsxkQVV+y56ojIiIiqukMmjjFx8fD2dkZvr6+iI+Pl5bHxcXBx8cH3t7euHXrFs6cOYOQkBCsXLkSABASEsIB6URERGR0Bj1Vp1AoUK9ePTx48ADW1tbS8he9/Fer1UKr1UrPeQULERER6YNBe5ycnZ1x9OhRhIaGYtGiRdLyF738V6VSQalUSg8OwiQiIiJ9MGiPk4nJwzytYcOGJXqIXvTyX17BQkQ1kT7ufF+VGHP/yzNDgD7irErvvT5mkjDm7BQGTZz27duHb775Bn///Tf8/PwwZsyYCrn8l1ewEBERkSEYNHEaOnQohg4dKj13dXUFUDGX/xIRERHpG29HQERERCQTEyciIiIimZg4EREREcnExImIiIhIJiZORERERDIxcSIiIiKSiYkTEdVYBw4cwKRJkzB8+HB8++230nLOn0lEZTHofZyIiCoTDw8PeHh4ICsrC7Nnz8aAAQMAvPj8mURUfTFxKgd93eK+Kt06v6KVZ9/1cet8fTD2PumjfmPvk74tXboU06dPl54/Pn9mSEhIifkzO3fuDJVKBX9/f9SrV++J8jjxOFH1xVN1RFRjCSEwb948DBw4EI6OjtLysubPTE1NhZ+fHy5duoQBAwbg6NGjpZbLiceJqi+D9jgdOHAAX3/9NTQaDSZMmCB1i48bNw5mZmYwMzNDeHg4vvrqK1y9ehVNmjTB5MmTMXPmTISGhnI+OiKqUOvWrcP3338PtVqNpKQknD59ukLmz+TE40TVl0ETp7LGE9SuXRuFhYVo0KABatWqhXPnzkGlUmH+/Pn44osv8N577z01aWK3OBE9jxkzZmDGjBnSc19fXwAvPn8mJx4nqr6Mcqru8fEEGzZswObNm9G8eXMcPnwYI0eOxIcffohu3brh999/x8WLF7Fq1SoUFRWVWh67xYmIiMgQDJo4PW08AQC8/PLLyMnJQYcOHfDRRx/h7NmzGDt2LPLz82FnZ4fffvut1HKDg4OhVqulR2pq1RucSkRERJWfQU/VlTWeICgoCHl5ecjKykJ0dDQA4OTJk3jjjTfQpk0b/PHHH/jjjz+gUqlKLZfd4kRERGQIBk2cyhpP8MknnzyxrrOzs/T/yMhI/QdHRERE9Ay8HQERERGRTEyciIiIiGRi4kREREQkExMnIiIiIpmYOBERERHJxMSJiIiISCYmTkREREQyMXEiIiIikomJExEREZFMBk2ccnNz4ePjg0mTJmHHjh3S8oSEBHh7e8Pb2xsJCQm4du0agoKCEBISAgBYs2YNrl69ashQiagGYJtEROVl0MRp37598PT0xObNm3Ho0CFpeXh4ODZs2ICNGzdi3bp1OHfuHEaPHo3CwkIkJyejsLAQ9vb2hgyViGoAtklEVF4GnasuLS0N7du3BwCYmppKy9VqNRo0aAAAyM7OhpubG9auXQt7e3uEh4ejZ8+eWL58OcaNG4fmzZs/Ua5Wq4VWqy1RHgBoNBpZcWXrdM+7S1We3GNUXvo4ptXx/dTH8S/P/uvjmMops3gdIYTscvWhMrZJVenzW5OV57tbVd5TY/890McxlVtmudokYUDbt28XX331lRBCiOHDh0vLJ06cKP7++2+hVqvF5MmTpeU7duwQJ06cEHPnzhV3794VK1euLLXcRYsWCQB88MFHFXukpqbqt9F5BrZJfPDBx6MPOW2SQgjD/eTLzc2Fn58fLC0t0atXLxw7dgyfffYZEhISsHLlSgDA3Llz0a5dO2RlZSEsLAzLli3DsmXLkJWVhaFDh6JHjx5PlPv4rzudTod79+6hUaNGUCgUT41Jo9HAxsYGqampsLKyqtgdlsHY9VeGGGp6/ZUhBkPXL4RAdnY2mjdvDhMT412jUtnaJGN/DipjLIyjcsZRmWKpiDjK0yYZNHGqjDQaDZRKJdRqtdH+YBmz/soQQ02vvzLEYOz66aHK9D5UllgYR+WMozLFYug4eDsCIiIiIpmYOBERERHJVOMTJwsLCyxatAgWFhY1sv7KEENNr78yxGDs+umhyvQ+VJZYGEfljKMyxWLoOGr8GCciIiIiuWp8jxMRERGRXEyciIiIiGRi4kREREQkU41OnMqa4NOQkpOTMWHCBHh6ehql/gMHDmDSpEkYPnw4vv32W4PXf/nyZfj6+sLT0xORkZEGr79Ybm4unJyccPjwYYPXHR8fD2dnZ/j6+iI+Pt7g9et0OixcuBD+/v7Ytm2bweunhypDe1TM2O3Co4z53SxWmb4jKSkp8PDwwPjx47FixQqD1//436ydO3di0qRJGDt2LHJzc40WxwcffIApU6bggw8+QFFRkV7rrtGJU1kTfBqSnZ0dtmzZYpS6AcDDwwObN29GVFQUdu/ebfD627Zti6ioKOzZswenT582eP3FQkND4eXlZZS6FQoF6tWrhwcPHsDa2trg9R88eBBpaWmoVauWUeqnhypDe1TM2O3Co4z53SxWmb4jFy9ehKenJz799FOcP3/e4PU//jdr//792Lx5M7y8vLBv3z6jxRETE4NNmzbBysoKt27d0mvdNTpxSktLg42NDYCSE3zWREuXLsX06dONUvehQ4fw9ttvY9CgQUap/7vvvsPrr7+Ol19+2Sj1Ozs74+jRowgNDcWiRYsMXv/Vq1fRo0cPrF692qi9fjVdZWyPjNkuAMb/bharTN+Rbt26YcuWLejbty/c3d2NGgsAaQohW1tbpKWlGTWWK1euQKvVSt8jfanRiZO1tbX0RuuqyOzVFU0IgXnz5mHgwIFwdHQ0SgxDhgzB0aNHjXZ6Ij4+Hj///DN27tyJzZs3G/yzUDwvUsOGDUvMb2Yo1tbWaNiwIYDK8we7JqpM7VFlaBcA4383i1Wm70hMTAyWLFmCH374AV9//bVRY3lUSkqKUXvjEhISEBYWhoiICL3XVaPv4/T4BJ/e3t4GjyEzMxMLFy7Ed999h4kTJyI4ONig9UdERGDbtm3o0qULOnXqBF9fX4PWHx8fj3379kGr1aJDhw5G/XW7detWNG7cGO+8845B6923bx+++eYb/P3335g6dSpcXV0NWv/9+/fh7++POnXqwMHBwajvQU1WGdqjYsZuFx5nrO9mscr0HUlISMDixYvRuHFj1KtXD2FhYQat//G/Wba2tjh58iTy8vKwYcMG1K1b1+BxjB8/HuvXr8fAgQNhbm6OkJAQvSZxNTpxIiIiIiqPGn2qjoiIiKg8mDgRERERycTEiYiIiEgmJk5EREREMjFxIiIiIpKJiRNVGVu3bn3mtAvGvv8NEdUcbJNqJjNjB0C0detWxMXFoXbt2mjWrBkKCgqQkJCAqVOn4ujRo8jLy8OwYcNw6tQp3L9/HwBgYWGBr7/+Wnrt1q1b+P777+Hk5ISZM2cad4eIqEpjm0RPw/s4kdFt3boV5ubmGDVqFN566y0cP34cy5cvx08//YTOnTsDAMzMzGBtbS3dBG/w4MFPvFarVi2j3jSQiKoHtkn0NOxxokrBysoKANCkSRMAgLm5Oe7fv4+QkBCYmT38mG7fvl1aX6fTlXht69atUCqVBo6aiKortklUFiZOVGn17t0bEydOxEsvvQQnJyd07NgRy5YtQ2FhIWbMmFHiNSIifWObRABP1RERERHJxqvqiIiIiGRi4kREREQkExMnIiIiIpmYOBERERHJxMSJiIiISCYmTkREREQyMXEiIiIikomJExEREZFMTJyIiIiIZGLiRERERCQTEyciIiIimZg4EREREcnExImIiIhIJiZORERERDIxcSIiIiKSiYlTFebk5GTsEPTmwoUL+OWXX566zqZNm/Daa6+VWFa/fn306dMHffr0wfjx43H37l0AwOLFi9G+fXu4urrC1dUVP/744xPl3bhxA56enuWO9fbt21i0aFG5t3uWK1euoGfPnujduzd8fHwghKjwOqjqq+ntQGVV/L4sWbIE3bp1Q7du3fD5558bOarSHTt2DPv37wcA/Pvf/5aWu7q6Iicnp8x15di6dSvWr19fMYGWIicnB66urnorvzRMnOiZdDqdweuT02B+9dVXcHFxwblz56Rl9vb2iIuLQ1xcHHr06IGpU6dKr6lUKsTHxyM+Ph4uLi4VEqsQAk2bNsWSJUsqpLxHbdy4ER9++CFOnDgBMzMz/PTTTxVeB5FclbUdqKi69GXMmDH4+eefceLECYSGhj7XD6DH43tWvOXdH3d3d7z33nsASiZOz1q3pmLiVEXEx8djwIABGDx4MLp06YKLFy9Kr3333XdwcXFBly5dsGLFCgAPs/xhw4ZJ6//5558AgLZt28LHxwedOnXCjh07AADJyclwc3ODq6srZs2aJW0/YsQIDB48GMeOHXsintK2WbhwIbZt24a8vDw4Ozvjzp07WLx4MUaOHAl3d3e4u7sjOzsbALB8+XK4uLigd+/e0r44OjoiICAAY8aMQWRkJMLDwzFgwIBSj0dGRgZq164NX19fxMbGlrrOxIkTcf78eRQVFck+zn/++SeGDx+O9u3b44cffgAAxMXFSb8Yt2/fDgAYN24cpk+fjgEDBuDXX3+Fp6cnioqKpB4tBwcHBAUFQaPRYMiQIXBx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",
      "text/plain": [
       "<Figure size 600x600 with 6 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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p05F7969sXXrVqSnpyMwMBA7duxAWFgYGjdujCZNmuCNN95AcHAw7O3tcfPmTaxduxaNGjUy9WZQJVJTU5Geno6LFy8iISEBt27dwvTp09GjRw9s2bIFf/zxB7Zt24bDhw+jcePGGDFiBIYMGWLqsI2mwSVNRERERDXR4E7PEREREdUEkyYiIiIiGZg0EREREcnApImIiIhIBiZNRERERDIwaSIiIiKSgUkTmdy9A0Xer3weqwULFhgrHCJqgLZu3Yr9+/fLXj4mJsaocztS7WBh6gCo4dq6dSu+//57dOzYEQUFBbh69Sqio6Nha2uLuXPnol27dtII3JmZmQDuDt9//vx5mJubIyEhAVOmTEH79u2Rk5ODgICABjXIGhHp144dO5CSkoJWrVohJycHFhYWKCsrQ2JiIjZu3Ig//vgDGo0G7777rrTOiRMnsHXrVpSVlaF3794YOHAg1q9fj7y8PPj5+SEgIACenp6YMmUKjh8/js2bN6Nx48am20h6LOxpIpMaNmwYhgwZgpKSElhbW2PPnj349NNPERwcjLfeeguWlpYVlr9z5w6sra1x9OhRXLt2DQAwffp0xMXFYffu3abYBCKqJ4YMGYK3334bx44dg52dHVavXg0HBwekp6fjm2++wfr16zF9+nTs2LFDWmf16tWwt7dHy5YtceLECVhYWECr1aJ169bYvn07gLtTMEVERKB37944efKkibaO9IE9TWRSdnZ2iIuLw44dO3DkyBGkpKSgcePGsLKyAnB33qNyeXl5+P333/HBBx/gn//8J27dugUAaNKkidRQERE9rjt37kgTlCsUCtw7ccb9z0tKShAWFgZ7e3sAwNtvv42RI0fi+eefxz/+8Q8Ad9soALC0tGQ7VccxaSKT8/HxwZIlS1BUVAR7e3uMGTMG0dHR+OWXX3Dz5k1puWbNmuHWrVtISEjAX3/9ZbqAiahe+uabb/D777+jV69eyM7OxoIFC3D79m14enpi0KBBCA0NRX5+Pt555x2sW7cOAPDaa69h7ty5aN26Ndq2bYs+ffogKSkJaWlp0o8/qj849xwRERGRDLymiYiIiEgGJk1EREREMjBpIiIiIpKBSRMRERGRDEyaiIiIiGRg0kREREQkA5MmIiIiIhmYNBERERHJwKSJiIiISAYmTUREREQyMGkiIiIikoFJExEREZEMTJqI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",
      "text/plain": [
       "<Figure size 600x600 with 6 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 600x600 with 6 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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GwMAVqxYgaioKGRmZmLZsmVwcHCocDtKpRJKpdKUu0JE9dAXX3wBjUYDBwcHODs7S8tXr16NdevWQaFQYPbs2ejduzdGjhyJf//738jKykJZWRnatWtnxsqJyFxMGpwcHByqnKDuzTfflP6/fv36+36+bNkyAICPjw98fHyMXyARNWhnzpxBt27dMGnSJAwePBi9e/cGAGi1WjRv3hwAUFhYiH79+mHVqlVo164dVq9eje7du2PZsmUYM2YMHB0d72tXr9dDr9dL93neJVH9UaMf1RER1SbOzs6wt7cHAFhaWkrLVSoVtFotdDodmjVrBpVKhQULFkCpVGLw4ME4evQoJk2ahO3bt1fYLs+7JKq/GJyIqMEKCgrCN998g7CwMPTo0QMhISEAgPDwcISFhWHatGkICwsDABQUFODkyZPw9fWFnZ0d1Go1unfvXmG7PO+SqP5SCCGEuYswNp1OJ71jtLOze+D6cuf4MMX8JkQNUXWP0bquOvtrijmX6us8TqbYf2Nvm+Qz5+tUnWOUI05EREREMjE4EREREcnE4EREREQkE4MTERERkUwMTkREREQymXQCTKL6hN++JCIijjgRERERycTgRERERCQTgxMRERGRTAxORERERDIxOBERERHJxOBEREREJBODExEREZFMDE5EREREMjE4EREREcnE4EREREQkE4MTERERkUwMTkREREQymfQiv1lZWVi6dCm0Wi327NmDHTt2IDU1FXq9HuvXr0fTpk2ldefOnYsbN27AxsYGy5cvx/Lly1FUVITXXnsNHh4eiI2NhVqtNmW5RERERFUy6YiTu7s7Nm3aJN3//PPP8dFHHyE4OBjJycnS8pycHNy6dQsJCQm4ffs2cnNzodVqMXPmTBw6dAjx8fGIiooyZalERERED1SjH9UpFAoAgJubGzQajbQ8Ly8PLi4uAABXV1doNBp4eXkhISEBrq6ucHR0xIYNG7Bt27YK29Xr9dDpdOVuREQPUlxcjC5duiAlJUValpqaitGjR2PEiBG4cOECjhw5gpiYGMTFxQEAYmJicPXqVXOVTERmZpZznHJycuDs7Czdd3JykoJUbm4unJ2dERQUhJiYGBw5cgQtWrTAK6+8goyMjArbU6vVUKlU0u1uCCMiqkpsbCyCg4PLLUtMTMSWLVsQHR2NTZs2IT09HZGRkbh27RoOHz4MDw8PtGjRwkwVE5G5mfQcp/z8fMyfPx/Hjh2DWq1GYGAgJk+ejJKSEqxbtw4//vgjjh07hilTpqBRo0aIiIiAUqmUgk9CQgLCwsIghEBCQgJsbGwq3E50dDQiIiKk+zqdjuGJyIjynOQfT055uSasxHi+/fZbPPvss7h582a55UIIWFhYSCPjMTExWLVqFTw9PbFr1y68+OKLUKvVCAsLg62tbYVt6/V66PV66T5HwYnqD5MGJwcHByQmJpZbNnz4cOn/3t7e8Pb2BoAKT/yOjIyU/r9mzZpKt6NUKqFUKh+1XCJqQNLS0lBcXIzMzEw0adIEAwYMgIWFBSwsLGAwGKSRcRcXFyxatAjvvfcepk2bho0bNyI4OBgHDhzAm2++WWHbarUaixYtquE9IqKaYNLgRERUWy1duhQAkJSUhBYtWmD06NHYunUrJk6ciPHjx+PWrVuIjY0FAJw9exYA0LZtWxgMBnz88ccIDw+vtG2OghPVXwxORNSgjRkzBgDw2muvAQB69eqFXr16lVvn6aeflkbAV6xY8cA2OQpOVH9xAkwiIiIimRiciIiIiGRicCIiIiKSicGJiIiISCYGJyIiIiKZGJyIiIiIZGJwIiIiIpKJ8zgREdVR1bkUDhmXuS9DVJe2X99wxImIiIhIJgYnIiIiIpkYnIiIiIhkYnAiIiIikonBiYiIiEgmBiciIiIimTgdQTWY6uuXdeWroqaok4iIqC7hiBMRERGRTAxORERERDIxOBERERHJxOBEREREJFONBqe0tDT4+voiNDQUaWlp0vLU1FSMHj0aI0aMwIULF3DkyBHExMQgLi4OABATE4OrV6/WZKlERERE96nR4KRQKGBra4ubN2/C2dlZWp6YmIgtW7YgOjoamzZtQnp6OiIjI3Ht2jUcPnwYHh4eaNGiRU2WSkQNwN69ezFhwgQMGTIE//nPf6TlfDNHRJWp0eDk6+uLAwcOIDY2FgsWLJCWCyFgYWEBNzc3aDQaDBs2DKtWrYKnpyd27doFg8EAtVqNoqKiCtvV6/XQ6XTlbkREDxIYGIiPPvoIiYmJ+Pe//y0t55s5IqpMjQYnC4s7m7O3t4dery+33GAwICcnB87OznBxccGiRYuQm5uLadOm4eTJk+jbty8OHDhQYbtqtRoqlUq6ubiYZr4lIqqflixZgqlTp0r3+WaOiCpTo8EpOTkZkyZNQkhICKZNm4aQkBAAwMSJEzF+/HgsX74c48aNAwCcPXsWANC2bVsYDAZ8/PHH8PT0rLDd6OhoaLVa6Zaby4kaiejBhBCYM2cO+vfvX65/4Zs5IqpMjc4cHhQUhKCgIOm+v78/AKBXr17o1atXuXWffvppREZGAgBWrFhRZbtKpRJKpdK4xRJRvbdmzRp899130Gq1OHv2LA4fPoytW7dKb+Zu3bqF2NhYABW/mQsPD6+w3ejoaEREREj3dTodwxNRPaEQQghzF2FsOp0OKpUKWq0WdnZ2D1zfVJdSkYuXXKkb5D6n9fF5qs7vk5z9r+4xWtdVZ3/ZH8knt9aG/pyae/vmJHffq3OMch4nIiIiIpkYnIiIiIhkYnAiIiIikonBiYiIiEgmBiciIiIimRiciIiIiGSq0Xmc6NHUla9/Voe5v1JrCqbYp/r4PBER1UUccSIiIiKSicGJiIiISCYGJyIiIiKZGJyIiIiIZGJwIiIiIpKJwYmIiIhIJgYnIiIiIpkYnIiIiIhkYnAiIiIikonBiYiIiEgmBiciIiIimRiciIiIiGRicCIiIiKSicGJiIiISKYaDU7FxcUYPXo0JkyYgO3bt0vLMzIyMGLECIwYMQIZGRk4d+4cIiMjERMTAwB4//33cebMmZoslYgaAPZJRFRdVjW5seTkZAwePBgBAQEYMmQIRowYAQBYvXo11q1bB4VCgdmzZ6N3794YOXIk/v3vfyMrKwtlZWVo165dpe3q9Xro9XrpvlarBQDodDpZdRUaDI+wV4+uvtVZHdXZJ1NsvzpM8fyb4rWvC6/T3XWEEA9dkzHUxj6poR/n1cG+s25s35zk7nt1+qQaDU4ajQYdO3YEAFhaWkrLtVotmjdvDgAoLCxEv379sGrVKrRr1w6rV69G9+7dsWzZMowZMwaOjo73tatWq7Fo0aL7lru4uJhmR4xNpTJ3BfKYu05zb98UTLFP5n6eqrH9wsJCqMxYL/ukCpj796c66kqt5q7T3Ns3p2ruu5w+qUaDk7OzMzQaDTp37gzDPWlVpVJBq9VCoVCgWbNmUKlUWLBgAXbs2IHBgwcjJSUFs2fPxubNmzFr1qz72o2OjkZERIR032Aw4Nq1a3BwcIBCoaiyJp1OBxcXF+Tm5sLOzs54O2tkdaVOoO7UyjqNT26tQggUFhZWGDpqUm3rk+rja21udaVOoO7UWh/rrE6fVKPBKSgoCNOmTcP+/fsREBCAkJAQbN26FeHh4QgLCwMAzJ49GwBQUFCAkydPYvjw4fjhhx+gVqsRFBRUYbtKpRJKpbLcsrvvFuWys7Or1b8Ad9WVOoG6UyvrND45tZpzpOmu2ton1bfXujaoK3UCdafW+lan3D5JIcx9koGZ6XQ66d1lbf4FqCt1AnWnVtZpfHWp1tqoLj1/daXWulInUHdqbeh1cjoCIiIiIpkafHBSKpVYsGDBfcPqtU1dqROoO7WyTuOrS7XWRnXp+asrtdaVOoG6U2tDr7PBf1RHREREJFeDH3EiIiIikovBiYiIiEgmBiciIiIimRpccJJ7bSpzq6zO5cuXY9KkSRg0aBA0Go0ZK/yfymoFgBMnTqBVq1YoKioyU3X/U1mdFy9exPTp0xEWFobDhw+bscI7Kqvzq6++QnBwMIKDg/Gf//zHjBX+T1ZWFsaNG4fBgweXW17bjqfaqq70R0Dd6ZPYHxkf+6R/EA3MJ598Ivbt2yeEECI4OFhaPn78eFFQUCCuX78uJk6caK7yJJXVeVdycrL45JNParqsClVWa2lpqZg+fboYNWqUKCwsNFd5ksrqjIiIEPPmzRPTp08X2dnZ5ipPUlmdUVFRIjc3V1y4cEGEh4ebqbqKDRo0qNz92nY81VZ1pT8Sou70SeyPjI99UnkNbsRJo9FI14uq6NpUKpUKhYWF5ipPUlmdAFBUVIRdu3YhMDDQDJXdr7Ja4+PjMX369Ade9qamVFbnyZMnMWrUKCxcuBCLFy82V3mSyuocOnQo3nzzTbzxxhsYO3asucqTpbYdT7VVXemPgLrTJ7E/Mj72SeU1uOB099pUACq8NpVOp0OzZs3MVZ6ksjp1Oh0mT56MuLi4WlEnUHmtx48fx5o1a/Dzzz9jw4YN5ipPUlmdzs7OsLe3h62tLW7evGmu8srVU1GdarUaBw8exA8//IDly5ebqzxZatvxVFvVlf4IqDt9Evsj42OfVF6Dm8epuLgY06ZNg7W1NXx8fPD1119j69atyMjIQFxcHIA716bq0KFDrawzKCgIt27dgpOTE4KDg9GrVy+z1llVrXeNGTMGa9euha2trRmrrLzOzMxMxMXFQaFQYPz48ejevXutrHPHjh34+uuvAQB9+vTBqFGjzFonAOTn52P+/Pn49ttvMX78eGRmZtbK46m2qiv9EVB3+iT2RzVXa0PtkxpccCIiIiJ6WA3uozoiIiKih8XgRERERCQTgxMRERGRTAxORERERDIxOBERERHJxOBEtc6984QAQFpaGtauXQsASExMxLlz58xRFhE1UOyT6F5W5i6A6K6kpCR89913aN++PQoLC3Hp0iXExMQgPT0dR44cQfPmzXHp0iWUlJTgp59+wgcffAAAmDJlCl566SUzV09E9Q37JKoIR5yoVunfvz/69u2L0tJS2NjYIDk5GT4+PhgwYABGjhwprbdmzRp8+OGH+PDDD7Fu3TozVkxE9Rn7JPonjjhRraJSqRAbG4udO3fiyJEjSE1NhYXF/fleCCFdc4pzuBKRqbBPon9icKJax8/PDwsWLEBxcTHs7e3xzDPPYOXKlWjatKm0zrRp0xAaGgrgzrA4EZGpsE+ie/GSK0REREQy8RwnIiIiIpkYnIiIiIhkYnAiIiIikonBiYiIiEgmBiciIiIimRiciIiIiGRicCIiIiKSicGJiIiISCYGJyIiIiKZGJyIiIiIZGJwIiIiIpKJwYmIiIhIJgYnIiIiIpkYnIiIiIhkYnAiIiIikonBqR7p0qWLuUuoVFJSEn788UeTtZ+WloY//vijWo/x9/dHUVFRtbc1Y8YMlJSUVPtxVTEYDBgzZgx8fX3h4+OD06dPG7V9IlNgn1O9PqcqkyZNuq/dtLQ0REVFVbquXKZ+naKiopCWlmbSbdQmDE5UbQaDodqPGTNmDLy9vU22bWN3YlVtf9WqVWjSpIlR2z1+/Dj0ej0OHToEtVqNlStXGrV9orqsIfQ5GzZskN3u3XXJPBic6qi0tDT07dsXAQEB8PLywokTJ6Sfffvtt/Dz84OXlxeWL18O4M67r0GDBknrX7x4EQDQvn17jB49Gp07d8b27dsBAFlZWejXrx/8/f0xc+ZM6fFDhw5FQEAAvv766/vqGTNmDCZNmoSePXti/PjxWLx4Mby9vaV3SwsXLkRKSgrOnTuHbt26oWfPntK7prfeegu+vr7w9/dHdnb2fW1nZ2ejR48eGDJkCGJjY7F161b4+/vD09MTW7duRUlJCZKSkhAdHY1Ro0ZBCIGwsDD07NkTffr0gUajqfR5fOedd9CjRw9MmzYNAKDT6TBw4ED4+flh6NChKC0tRVpaGgICAvDGG28gKSlJGqlaunQp/P390aNHD7Rs2RIAsHLlSnh7e8PHxwe//vorAMDT0xPTpk3Dv/71L8TGxlZYh7OzM4QQEEKgoKAALVq0qLRmInNgn/Nofc6NGzfw6quvAgBGjRqFd999F8CdkW/gzqjQP9sFgIyMDLzxxhvo1KkTMjIypHXv7mNISAgGDBgAPz+/SkfCDQYDJk6cCG9vb6xYsQIAoNFo0KdPn3L9X1JSEtauXQsASElJwcKFCyt9zX777Td4eXnhtddew++//17hdustQXVSamqq6N69uzAYDCIzM1MEBASIF198UQghRHFxsRBCiNu3b4suXbqIGzduiC1btoi33npLCCHEBx98IFavXi2EEKJ58+ZCq9UKrVYrunbtKoQQ4s033xRnz54VQggRGhoqfvnlF7FlyxYxcuTISusZPXq02LZtmxBCCG9vb7F3714hhBBdunQRpaWlYsGCBeLLL78UGzduFOvWrZPqKy0tFd7e3sJgMEjL/un8+fPC3d1d6PX6cvt348YN8cILLwghhNS+EEJ8+eWX4u233xZCCPHTTz+JqVOnVlizn5+fOHjwoBBCiJdeeklcv35drFixQqxfv14IIcS7774rPv74Y5Gamip8fX2lGv38/ERhYaHUzpw5c8TGjRvFxYsXha+vr7h9+7Y4f/686NOnjxBCiCeffFJkZ2eLsrIy8dxzz1VYy+3bt8XIkSPFM888I1xdXUVubm6lzzWRObDPefQ+p1evXqKsrEwEBweL4OBgkZubK0JCQoQQQnou7203NTVV9OrVSwghxFdffSVmzpx537qLFi0SQggxe/Zs8cUXX1S43TZt2ojTp0+L27dvC19fX/H333+LqVOnigMHDgghhBg7dqw4ePCg2LJli1izZo20TwsWLBBCVPyavfbaa1Kb3t7eIjU1tcJt10cccarDXnjhBSgUCrRv3156NwcAR48eRZ8+fdCzZ09kZ2fj8uXL0voA4OLigoKCAgCAu7s77OzsYGdnh9u3bwMATp8+jXHjxsHf3x8///yz9O7Jy8urynqef/55AICjo6P0/9atW0On00nrBAcH4/z58xgxYgS2bduGRo0aYerUqQgJCUF4eDhu3LhRYdudOnVC48aNAQDffPMN/P398corr+Ds2bP3rZuZmYnPP/8c/v7+mD17Nq5fv17lcwgATk5OuH79Os6ePSvtp5eXF/78808A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",
      "text/plain": [
       "<Figure size 600x600 with 4 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from nuplan.planning.script.run_simulation import main as main_simulation\n",
    "\n",
    "# Run the simulation loop (real-time visualization not yet supported, see next section for visualization)\n",
    "main_simulation(cfg)\n",
    "\n",
    "# Simple simulation folder for visualization in nuBoard\n",
    "simple_simulation_folder = cfg.output_dir"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8b6c1fb9",
   "metadata": {},
   "source": [
    "## Launch simulation (command line - alternative)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cc9b23af",
   "metadata": {},
   "source": [
    "A simulation experiment can be launched alternatively with:\n",
    "```\n",
    "$ python nuplan/planning/script/run_simulation.py \\\n",
    "    +simulation=open_loop_boxes \\\n",
    "    planner=simple_planner \\\n",
    "    scenario_builder=nuplan_mini \\\n",
    "    scenario_filter=all_scenarios \\\n",
    "    scenario_filter.scenario_types=\"[near_multiple_vehicles, on_pickup_dropoff, starting_unprotected_cross_turn, high_magnitude_jerk]\" \\\n",
    "    scenario_filter.num_scenarios_per_type=10 \\\n",
    "```"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "557a181f",
   "metadata": {},
   "source": [
    "## Simulate a trained ML planner for comparison\n",
    "\n",
    "Using the same simulation settings as before, we can simulate a pretrained ML planner and compare the two.\n",
    "\n",
    "In this example you can take the model you trained earlier."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ba4dc68c",
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Global seed set to 0\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2023-04-25 17:31:09,399 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/main_callback_builder.py:20}  Building MultiMainCallback...\n",
      "2023-04-25 17:31:09,416 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/main_callback_builder.py:35}  Building MultiMainCallback: 4...DONE!\n",
      "2023-04-25 17:31:09,583 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/worker_pool_builder.py:19}  Building WorkerPool...\n",
      "2023-04-25 17:31:09,583 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/worker_pool_builder.py:19}  Building WorkerPool...\n",
      "2023-04-25 17:31:09,584 WARNING {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/utils/multithreading/worker_ray.py:135}  Ray is running, we will shut it down before starting again!\n",
      "2023-04-25 17:31:09,584 WARNING {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/utils/multithreading/worker_ray.py:135}  Ray is running, we will shut it down before starting again!\n",
      "2023-04-25 17:31:11,251 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/utils/multithreading/worker_ray.py:78}  Starting ray local!\n",
      "2023-04-25 17:31:11,251 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/utils/multithreading/worker_ray.py:78}  Starting ray local!\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2023-04-25 17:31:13,248\tINFO worker.py:1553 -- Started a local Ray instance.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2023-04-25 17:31:13,995 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/utils/multithreading/worker_pool.py:101}  Worker: RayDistributed\n",
      "2023-04-25 17:31:13,995 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/utils/multithreading/worker_pool.py:101}  Worker: RayDistributed\n",
      "2023-04-25 17:31:13,996 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/utils/multithreading/worker_pool.py:102}  Number of nodes: 1\n",
      "Number of CPUs per node: 32\n",
      "Number of GPUs per node: 1\n",
      "Number of threads across all nodes: 32\n",
      "2023-04-25 17:31:13,996 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/utils/multithreading/worker_pool.py:102}  Number of nodes: 1\n",
      "Number of CPUs per node: 32\n",
      "Number of GPUs per node: 1\n",
      "Number of threads across all nodes: 32\n",
      "2023-04-25 17:31:13,996 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/worker_pool_builder.py:27}  Building WorkerPool...DONE!\n",
      "2023-04-25 17:31:13,996 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/worker_pool_builder.py:27}  Building WorkerPool...DONE!\n",
      "2023-04-25 17:31:13,996 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/folder_builder.py:32}  Building experiment folders...\n",
      "2023-04-25 17:31:13,996 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/folder_builder.py:32}  Building experiment folders...\n",
      "2023-04-25 17:31:13,997 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/folder_builder.py:35}  \n",
      "\n",
      "\tFolder where all results are stored: /tmp/tutorial_nuplan_framework/simulation_raster_experiment/open_loop_boxes/2023.04.25.17.31.09\n",
      "\n",
      "2023-04-25 17:31:13,997 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/folder_builder.py:35}  \n",
      "\n",
      "\tFolder where all results are stored: /tmp/tutorial_nuplan_framework/simulation_raster_experiment/open_loop_boxes/2023.04.25.17.31.09\n",
      "\n",
      "2023-04-25 17:31:13,999 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/folder_builder.py:70}  Building experiment folders...DONE!\n",
      "2023-04-25 17:31:13,999 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/folder_builder.py:70}  Building experiment folders...DONE!\n",
      "2023-04-25 17:31:13,999 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/simulation_callback_builder.py:52}  Building AbstractCallback...\n",
      "2023-04-25 17:31:13,999 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/simulation_callback_builder.py:52}  Building AbstractCallback...\n",
      "2023-04-25 17:31:13,999 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/simulation_callback_builder.py:68}  Building AbstractCallback: 0...DONE!\n",
      "2023-04-25 17:31:13,999 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/simulation_callback_builder.py:68}  Building AbstractCallback: 0...DONE!\n",
      "2023-04-25 17:31:14,000 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/simulation_builder.py:47}  Building simulations...\n",
      "2023-04-25 17:31:14,000 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/simulation_builder.py:47}  Building simulations...\n",
      "2023-04-25 17:31:14,000 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/simulation_builder.py:53}  Extracting scenarios...\n",
      "2023-04-25 17:31:14,000 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/simulation_builder.py:53}  Extracting scenarios...\n",
      "2023-04-25 17:31:14,000 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/common/utils/distributed_scenario_filter.py:83}  Building Scenarios in mode DistributedMode.SINGLE_NODE\n",
      "2023-04-25 17:31:14,000 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/common/utils/distributed_scenario_filter.py:83}  Building Scenarios in mode DistributedMode.SINGLE_NODE\n",
      "2023-04-25 17:31:14,000 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/scenario_building_builder.py:18}  Building AbstractScenarioBuilder...\n",
      "2023-04-25 17:31:14,000 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/scenario_building_builder.py:18}  Building AbstractScenarioBuilder...\n",
      "2023-04-25 17:31:14,014 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/scenario_building_builder.py:21}  Building AbstractScenarioBuilder...DONE!\n",
      "2023-04-25 17:31:14,014 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/scenario_building_builder.py:21}  Building AbstractScenarioBuilder...DONE!\n",
      "2023-04-25 17:31:14,014 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/scenario_filter_builder.py:35}  Building ScenarioFilter...\n",
      "2023-04-25 17:31:14,014 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/scenario_filter_builder.py:35}  Building ScenarioFilter...\n",
      "2023-04-25 17:31:14,015 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/scenario_filter_builder.py:44}  Building ScenarioFilter...DONE!\n",
      "2023-04-25 17:31:14,015 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/scenario_filter_builder.py:44}  Building ScenarioFilter...DONE!\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Ray objects: 100%|████████████████████████████████████████████████████████████████████| 32/32 [00:02<00:00, 15.29it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2023-04-25 17:31:16,146 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/simulation_builder.py:74}  Building metric engines...\n",
      "2023-04-25 17:31:16,146 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/simulation_builder.py:74}  Building metric engines...\n",
      "2023-04-25 17:31:16,171 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/simulation_builder.py:76}  Building metric engines...DONE\n",
      "2023-04-25 17:31:16,171 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/simulation_builder.py:76}  Building metric engines...DONE\n",
      "2023-04-25 17:31:16,171 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/simulation_builder.py:80}  Building simulations from 31 scenarios...\n",
      "2023-04-25 17:31:16,171 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/simulation_builder.py:80}  Building simulations from 31 scenarios...\n",
      "2023-04-25 17:31:16,173 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:16,173 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:16,383 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:16,383 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:16,417 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:16,417 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:16,438 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:16,438 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:16,811 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:16,811 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:17,007 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:17,007 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:17,026 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:17,026 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:17,043 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:17,043 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:17,216 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:17,216 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:17,407 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:17,407 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:17,428 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:17,428 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:17,445 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:17,445 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:17,855 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:17,855 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:18,045 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:18,045 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:18,063 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:18,063 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:18,080 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:18,080 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:18,450 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:18,450 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:18,641 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:18,641 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2023-04-25 17:31:18,663 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:18,663 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:18,680 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:18,680 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:18,854 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:18,854 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:19,046 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:19,046 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:19,063 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:19,063 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:19,081 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:19,081 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:19,481 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:19,481 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:19,672 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:19,672 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:19,693 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:19,693 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:19,710 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:19,710 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:20,089 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:20,089 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:20,280 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:20,280 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:20,298 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:20,298 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:20,316 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:20,316 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:20,480 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:20,480 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:20,673 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:20,673 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:20,695 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:20,695 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:20,712 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:20,712 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:21,125 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:21,125 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:21,318 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:21,318 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:21,336 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:21,336 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:21,354 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:21,354 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2023-04-25 17:31:21,719 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:21,719 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:21,911 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:21,911 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:21,933 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:21,933 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:21,951 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:21,951 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:22,130 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:22,130 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:22,322 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:22,322 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:22,340 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:22,340 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:22,357 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:22,357 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:22,760 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:22,760 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:22,954 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:22,954 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:22,976 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:22,976 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:22,994 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:22,994 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:23,372 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:23,372 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:23,571 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:23,571 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:23,589 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:23,589 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:23,607 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:23,607 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:23,770 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:23,770 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:23,964 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:23,964 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:23,985 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:23,985 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:24,003 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:24,003 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:24,409 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:24,409 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:24,599 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:24,599 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2023-04-25 17:31:24,617 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:24,617 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:24,635 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:24,635 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:25,001 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:25,001 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:25,191 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:25,191 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:25,212 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:25,212 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:25,230 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:25,230 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:25,400 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:25,400 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:25,590 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:25,590 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:25,608 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:25,608 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:25,625 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:25,625 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:26,026 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:26,026 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:26,217 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:26,217 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:26,238 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:26,238 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:26,256 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:26,256 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:26,629 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:26,629 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:26,819 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:26,819 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:26,837 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:26,837 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:26,855 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:26,855 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:27,019 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:27,019 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:27,211 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:27,211 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:27,231 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:27,231 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:27,249 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:27,249 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2023-04-25 17:31:27,659 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:27,659 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:27,850 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:27,850 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:27,869 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:27,869 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:27,890 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:27,890 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:28,260 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:28,260 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:28,453 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:28,453 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:28,474 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:28,474 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:28,492 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:28,492 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:28,661 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:28,661 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:28,853 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:28,853 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:28,871 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:28,871 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:28,888 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:28,888 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:29,296 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:29,296 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:29,489 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:29,489 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:29,510 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:29,510 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:29,527 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:29,527 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:29,910 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:29,910 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:30,102 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:30,102 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:30,120 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:30,120 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:30,139 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:30,139 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:30,304 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:30,304 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2023-04-25 17:31:30,495 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:30,495 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:30,516 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:30,516 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:30,533 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:30,533 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:30,959 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:30,959 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:31,150 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:31,150 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:31,168 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:31,168 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:31,186 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:31,186 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:31,569 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:31,569 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:31,762 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:31,762 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:31,783 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:31,783 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:31,801 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:31,801 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:31,978 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:31,978 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:32,169 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:32,169 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:32,187 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:32,187 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:32,204 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:32,204 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:32,630 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:32,630 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:18}  Building TorchModuleWrapper...\n",
      "2023-04-25 17:31:32,821 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:32,821 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:247}  Loading pretrained weights from url (https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth)\n",
      "2023-04-25 17:31:32,842 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:32,842 INFO {/home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/timm/models/helpers.py:275}  Converted input conv conv1 pretrained weights from 3 to 4 channel(s)\n",
      "2023-04-25 17:31:32,860 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:32,860 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/model_builder.py:21}  Building TorchModuleWrapper...DONE!\n",
      "2023-04-25 17:31:33,040 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/simulation_builder.py:133}  Building simulations...DONE!\n",
      "2023-04-25 17:31:33,040 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/builders/simulation_builder.py:133}  Building simulations...DONE!\n",
      "2023-04-25 17:31:33,040 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/run_simulation.py:78}  Running simulation...\n",
      "2023-04-25 17:31:33,040 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/run_simulation.py:78}  Running simulation...\n",
      "2023-04-25 17:31:33,041 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/utils.py:138}  Executing runners...\n",
      "2023-04-25 17:31:33,041 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/script/utils.py:138}  Executing runners...\n",
      "2023-04-25 17:31:33,041 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/simulation/runner/executor.py:82}  Starting 31 simulations using RayDistributed!\n",
      "2023-04-25 17:31:33,041 INFO {/home/pat.karnchanachari/nuplan-devkit/nuplan/planning/simulation/runner/executor.py:82}  Starting 31 simulations using RayDistributed!\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Ray objects:   0%|                                                                             | 0/31 [00:00<?, ?it/s]\u001b[2m\u001b[36m(wrapped_fn pid=32670)\u001b[0m /home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/torch/nn/functional.py:718: UserWarning: Named tensors and all their associated APIs are an experimental feature and subject to change. Please do not use them for anything important until they are released as stable. (Triggered internally at  /pytorch/c10/core/TensorImpl.h:1156.)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32670)\u001b[0m   return torch.max_pool2d(input, kernel_size, stride, padding, dilation, ceil_mode)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32668)\u001b[0m /home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/torch/nn/functional.py:718: UserWarning: Named tensors and all their associated APIs are an experimental feature and subject to change. Please do not use them for anything important until they are released as stable. (Triggered internally at  /pytorch/c10/core/TensorImpl.h:1156.)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32668)\u001b[0m   return torch.max_pool2d(input, kernel_size, stride, padding, dilation, ceil_mode)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32662)\u001b[0m /home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/torch/nn/functional.py:718: UserWarning: Named tensors and all their associated APIs are an experimental feature and subject to change. Please do not use them for anything important until they are released as stable. (Triggered internally at  /pytorch/c10/core/TensorImpl.h:1156.)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32662)\u001b[0m   return torch.max_pool2d(input, kernel_size, stride, padding, dilation, ceil_mode)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32657)\u001b[0m /home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/torch/nn/functional.py:718: UserWarning: Named tensors and all their associated APIs are an experimental feature and subject to change. Please do not use them for anything important until they are released as stable. (Triggered internally at  /pytorch/c10/core/TensorImpl.h:1156.)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32657)\u001b[0m   return torch.max_pool2d(input, kernel_size, stride, padding, dilation, ceil_mode)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32652)\u001b[0m /home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/torch/nn/functional.py:718: UserWarning: Named tensors and all their associated APIs are an experimental feature and subject to change. Please do not use them for anything important until they are released as stable. (Triggered internally at  /pytorch/c10/core/TensorImpl.h:1156.)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32652)\u001b[0m   return torch.max_pool2d(input, kernel_size, stride, padding, dilation, ceil_mode)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32675)\u001b[0m /home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/torch/nn/functional.py:718: UserWarning: Named tensors and all their associated APIs are an experimental feature and subject to change. Please do not use them for anything important until they are released as stable. (Triggered internally at  /pytorch/c10/core/TensorImpl.h:1156.)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32675)\u001b[0m   return torch.max_pool2d(input, kernel_size, stride, padding, dilation, ceil_mode)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32650)\u001b[0m /home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/torch/nn/functional.py:718: UserWarning: Named tensors and all their associated APIs are an experimental feature and subject to change. Please do not use them for anything important until they are released as stable. (Triggered internally at  /pytorch/c10/core/TensorImpl.h:1156.)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32650)\u001b[0m   return torch.max_pool2d(input, kernel_size, stride, padding, dilation, ceil_mode)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32654)\u001b[0m /home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/torch/nn/functional.py:718: UserWarning: Named tensors and all their associated APIs are an experimental feature and subject to change. Please do not use them for anything important until they are released as stable. (Triggered internally at  /pytorch/c10/core/TensorImpl.h:1156.)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32654)\u001b[0m   return torch.max_pool2d(input, kernel_size, stride, padding, dilation, ceil_mode)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32665)\u001b[0m /home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/torch/nn/functional.py:718: UserWarning: Named tensors and all their associated APIs are an experimental feature and subject to change. Please do not use them for anything important until they are released as stable. (Triggered internally at  /pytorch/c10/core/TensorImpl.h:1156.)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32665)\u001b[0m   return torch.max_pool2d(input, kernel_size, stride, padding, dilation, ceil_mode)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32671)\u001b[0m /home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/torch/nn/functional.py:718: UserWarning: Named tensors and all their associated APIs are an experimental feature and subject to change. Please do not use them for anything important until they are released as stable. (Triggered internally at  /pytorch/c10/core/TensorImpl.h:1156.)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32671)\u001b[0m   return torch.max_pool2d(input, kernel_size, stride, padding, dilation, ceil_mode)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32674)\u001b[0m /home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/torch/nn/functional.py:718: UserWarning: Named tensors and all their associated APIs are an experimental feature and subject to change. Please do not use them for anything important until they are released as stable. (Triggered internally at  /pytorch/c10/core/TensorImpl.h:1156.)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32674)\u001b[0m   return torch.max_pool2d(input, kernel_size, stride, padding, dilation, ceil_mode)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32661)\u001b[0m /home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/torch/nn/functional.py:718: UserWarning: Named tensors and all their associated APIs are an experimental feature and subject to change. Please do not use them for anything important until they are released as stable. (Triggered internally at  /pytorch/c10/core/TensorImpl.h:1156.)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32661)\u001b[0m   return torch.max_pool2d(input, kernel_size, stride, padding, dilation, ceil_mode)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32672)\u001b[0m /home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/torch/nn/functional.py:718: UserWarning: Named tensors and all their associated APIs are an experimental feature and subject to change. Please do not use them for anything important until they are released as stable. (Triggered internally at  /pytorch/c10/core/TensorImpl.h:1156.)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32672)\u001b[0m   return torch.max_pool2d(input, kernel_size, stride, padding, dilation, ceil_mode)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32655)\u001b[0m /home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/torch/nn/functional.py:718: UserWarning: Named tensors and all their associated APIs are an experimental feature and subject to change. Please do not use them for anything important until they are released as stable. (Triggered internally at  /pytorch/c10/core/TensorImpl.h:1156.)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32655)\u001b[0m   return torch.max_pool2d(input, kernel_size, stride, padding, dilation, ceil_mode)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32660)\u001b[0m /home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/torch/nn/functional.py:718: UserWarning: Named tensors and all their associated APIs are an experimental feature and subject to change. Please do not use them for anything important until they are released as stable. (Triggered internally at  /pytorch/c10/core/TensorImpl.h:1156.)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32660)\u001b[0m   return torch.max_pool2d(input, kernel_size, stride, padding, dilation, ceil_mode)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32649)\u001b[0m /home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/torch/nn/functional.py:718: UserWarning: Named tensors and all their associated APIs are an experimental feature and subject to change. Please do not use them for anything important until they are released as stable. (Triggered internally at  /pytorch/c10/core/TensorImpl.h:1156.)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32649)\u001b[0m   return torch.max_pool2d(input, kernel_size, stride, padding, dilation, ceil_mode)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32666)\u001b[0m /home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/torch/nn/functional.py:718: UserWarning: Named tensors and all their associated APIs are an experimental feature and subject to change. Please do not use them for anything important until they are released as stable. (Triggered internally at  /pytorch/c10/core/TensorImpl.h:1156.)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32666)\u001b[0m   return torch.max_pool2d(input, kernel_size, stride, padding, dilation, ceil_mode)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32663)\u001b[0m /home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/torch/nn/functional.py:718: UserWarning: Named tensors and all their associated APIs are an experimental feature and subject to change. Please do not use them for anything important until they are released as stable. (Triggered internally at  /pytorch/c10/core/TensorImpl.h:1156.)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32663)\u001b[0m   return torch.max_pool2d(input, kernel_size, stride, padding, dilation, ceil_mode)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[2m\u001b[36m(wrapped_fn pid=32648)\u001b[0m /home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/torch/nn/functional.py:718: UserWarning: Named tensors and all their associated APIs are an experimental feature and subject to change. Please do not use them for anything important until they are released as stable. (Triggered internally at  /pytorch/c10/core/TensorImpl.h:1156.)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32648)\u001b[0m   return torch.max_pool2d(input, kernel_size, stride, padding, dilation, ceil_mode)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32656)\u001b[0m /home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/torch/nn/functional.py:718: UserWarning: Named tensors and all their associated APIs are an experimental feature and subject to change. Please do not use them for anything important until they are released as stable. (Triggered internally at  /pytorch/c10/core/TensorImpl.h:1156.)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32656)\u001b[0m   return torch.max_pool2d(input, kernel_size, stride, padding, dilation, ceil_mode)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32647)\u001b[0m /home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/torch/nn/functional.py:718: UserWarning: Named tensors and all their associated APIs are an experimental feature and subject to change. Please do not use them for anything important until they are released as stable. (Triggered internally at  /pytorch/c10/core/TensorImpl.h:1156.)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32647)\u001b[0m   return torch.max_pool2d(input, kernel_size, stride, padding, dilation, ceil_mode)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32651)\u001b[0m /home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/torch/nn/functional.py:718: UserWarning: Named tensors and all their associated APIs are an experimental feature and subject to change. Please do not use them for anything important until they are released as stable. (Triggered internally at  /pytorch/c10/core/TensorImpl.h:1156.)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32651)\u001b[0m   return torch.max_pool2d(input, kernel_size, stride, padding, dilation, ceil_mode)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32658)\u001b[0m /home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/torch/nn/functional.py:718: UserWarning: Named tensors and all their associated APIs are an experimental feature and subject to change. Please do not use them for anything important until they are released as stable. (Triggered internally at  /pytorch/c10/core/TensorImpl.h:1156.)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32658)\u001b[0m   return torch.max_pool2d(input, kernel_size, stride, padding, dilation, ceil_mode)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32673)\u001b[0m /home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/torch/nn/functional.py:718: UserWarning: Named tensors and all their associated APIs are an experimental feature and subject to change. Please do not use them for anything important until they are released as stable. (Triggered internally at  /pytorch/c10/core/TensorImpl.h:1156.)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32673)\u001b[0m   return torch.max_pool2d(input, kernel_size, stride, padding, dilation, ceil_mode)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32676)\u001b[0m /home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/torch/nn/functional.py:718: UserWarning: Named tensors and all their associated APIs are an experimental feature and subject to change. Please do not use them for anything important until they are released as stable. (Triggered internally at  /pytorch/c10/core/TensorImpl.h:1156.)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32676)\u001b[0m   return torch.max_pool2d(input, kernel_size, stride, padding, dilation, ceil_mode)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32678)\u001b[0m /home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/torch/nn/functional.py:718: UserWarning: Named tensors and all their associated APIs are an experimental feature and subject to change. Please do not use them for anything important until they are released as stable. (Triggered internally at  /pytorch/c10/core/TensorImpl.h:1156.)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32678)\u001b[0m   return torch.max_pool2d(input, kernel_size, stride, padding, dilation, ceil_mode)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32659)\u001b[0m /home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/torch/nn/functional.py:718: UserWarning: Named tensors and all their associated APIs are an experimental feature and subject to change. Please do not use them for anything important until they are released as stable. (Triggered internally at  /pytorch/c10/core/TensorImpl.h:1156.)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32659)\u001b[0m   return torch.max_pool2d(input, kernel_size, stride, padding, dilation, ceil_mode)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32664)\u001b[0m /home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/torch/nn/functional.py:718: UserWarning: Named tensors and all their associated APIs are an experimental feature and subject to change. Please do not use them for anything important until they are released as stable. (Triggered internally at  /pytorch/c10/core/TensorImpl.h:1156.)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32664)\u001b[0m   return torch.max_pool2d(input, kernel_size, stride, padding, dilation, ceil_mode)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32677)\u001b[0m /home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/torch/nn/functional.py:718: UserWarning: Named tensors and all their associated APIs are an experimental feature and subject to change. Please do not use them for anything important until they are released as stable. (Triggered internally at  /pytorch/c10/core/TensorImpl.h:1156.)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32677)\u001b[0m   return torch.max_pool2d(input, kernel_size, stride, padding, dilation, ceil_mode)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32669)\u001b[0m /home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/torch/nn/functional.py:718: UserWarning: Named tensors and all their associated APIs are an experimental feature and subject to change. Please do not use them for anything important until they are released as stable. (Triggered internally at  /pytorch/c10/core/TensorImpl.h:1156.)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32669)\u001b[0m   return torch.max_pool2d(input, kernel_size, stride, padding, dilation, ceil_mode)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32653)\u001b[0m /home/pat.karnchanachari/miniconda3/envs/nuplan/lib/python3.9/site-packages/torch/nn/functional.py:718: UserWarning: Named tensors and all their associated APIs are an experimental feature and subject to change. Please do not use them for anything important until they are released as stable. (Triggered internally at  /pytorch/c10/core/TensorImpl.h:1156.)\n",
      "\u001b[2m\u001b[36m(wrapped_fn pid=32653)\u001b[0m   return torch.max_pool2d(input, kernel_size, stride, padding, dilation, ceil_mode)\n"
     ]
    }
   ],
   "source": [
    "# Location of path with all simulation configs\n",
    "CONFIG_PATH = '../nuplan/planning/script/config/simulation'\n",
    "CONFIG_NAME = 'default_simulation'\n",
    "\n",
    "# Get the checkpoint of the trained model\n",
    "last_experiment = sorted(os.listdir(LOG_DIR))[-1]\n",
    "train_experiment_dir = sorted(LOG_DIR.iterdir())[-1]\n",
    "checkpoint = sorted((train_experiment_dir / 'checkpoints').iterdir())[-1]\n",
    "\n",
    "MODEL_PATH = str(checkpoint).replace(\"=\", \"\\=\")\n",
    "\n",
    "# Name of the experiment\n",
    "EXPERIMENT = 'simulation_raster_experiment'\n",
    "\n",
    "# Initialize configuration management system\n",
    "hydra.core.global_hydra.GlobalHydra.instance().clear()  # reinitialize hydra if already initialized\n",
    "hydra.initialize(config_path=CONFIG_PATH)\n",
    "\n",
    "# Compose the configuration\n",
    "cfg = hydra.compose(config_name=CONFIG_NAME, overrides=[\n",
    "    f'experiment_name={EXPERIMENT}',\n",
    "    f'group={SAVE_DIR}',\n",
    "    'planner=ml_planner',\n",
    "    'model=raster_model',\n",
    "    'planner.ml_planner.model_config=${model}',  # hydra notation to select model config\n",
    "    f'planner.ml_planner.checkpoint_path={MODEL_PATH}',  # this path can be replaced by the checkpoint of the model trained in the previous section\n",
    "    f'+simulation={CHALLENGE}',\n",
    "    *DATASET_PARAMS,\n",
    "])\n",
    "\n",
    "# Run the simulation loop\n",
    "main_simulation(cfg)\n",
    "\n",
    "# ML_planner simulation folder for visualization in nuBoard (next section)\n",
    "ml_planner_simulation_folder = cfg.output_dir"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ae7a31f9",
   "metadata": {},
   "source": [
    "# Visualizing metrics and scenarios <a name=\"dashboard\"></a>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fa24ae5b",
   "metadata": {},
   "source": [
    "## nuBoard summary\n",
    "\n",
    "Having trained and simulated planners across various scenarios and driving behaviors, it's time to evaluate them:\n",
    "* quantitatively, through common and scenario dependent metrics\n",
    "* qualitatively, through visualization of scenario progression\n",
    "\n",
    "### nuBoard tabs\n",
    "To achieve that, nuBoard has 3 core evaluation tabs:\n",
    "1. Overview - Scalar metrics summary of common and scenario metrics across the following categories:\n",
    "    * Ego dynamics\n",
    "    * Traffic violations\n",
    "    * Expert imitation\n",
    "    * Planning & navigation\n",
    "    * Scenario performance\n",
    "2. Histograms - Histograms over metric statistics for more a granular peek inside each metric focusing on:\n",
    "    * Metric statistics (e.g. min, max, p90)\n",
    "3. Scenarios - Low-level scenario visualizations:\n",
    "    * Time-series progression of a specific metric across a scenario\n",
    "    * Top-down visualization of the scenario across time for comparing predicted vs. expert trajectories\n",
    "\n",
    "In addition, there is a main configuration tab for selecting different simulation files for comparing planners/experiments.\n",
    "\n",
    "<br />\n",
    "\n",
    "**NOTE**: nuBoard is under heavy developement, overall functionality and aesthetics do not represent the final product!"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1d8edb17",
   "metadata": {},
   "source": [
    "## Prepare the nuBoard config"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "42434f46",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Location of path with all nuBoard configs\n",
    "CONFIG_PATH = '../nuplan/planning/script/config/nuboard'\n",
    "CONFIG_NAME = 'default_nuboard'\n",
    "\n",
    "# Initialize configuration management system\n",
    "hydra.core.global_hydra.GlobalHydra.instance().clear()  # reinitialize hydra if already initialized\n",
    "hydra.initialize(config_path=CONFIG_PATH)\n",
    "\n",
    "# Compose the configuration\n",
    "cfg = hydra.compose(config_name=CONFIG_NAME, overrides=[\n",
    "    'scenario_builder=nuplan_mini',  # set the database (same as simulation) used to fetch data for visualization\n",
    "    f'simulation_path={[simple_simulation_folder, ml_planner_simulation_folder]}',  # nuboard file path(s), if left empty the user can open the file inside nuBoard\n",
    "])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3420d0c5",
   "metadata": {},
   "source": [
    "## Launch nuBoard (open in new tab - recommended)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f114e9bf",
   "metadata": {
    "scrolled": false
   },
   "outputs": [],
   "source": [
    "from nuplan.planning.script.run_nuboard import main as main_nuboard\n",
    "\n",
    "# Run nuBoard\n",
    "main_nuboard(cfg)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "177cd444",
   "metadata": {},
   "source": [
    "## Launch nuBoard (embedded within the notebook - alternative)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "cd4b6454",
   "metadata": {},
   "outputs": [],
   "source": [
    "from bokeh.io import show, output_notebook\n",
    "from nuplan.planning.script.run_nuboard import initialize_nuboard\n",
    "\n",
    "# Make sure that the notebook working directory is \"/notebooks\" and that Jupyter was launched at the root of the repo\n",
    "cfg.resource_prefix = '/notebooks/nuplan/planning/metrics/board/'  # pass CSS resources to the notebook\n",
    "\n",
    "# Run the nuBoard\n",
    "output_notebook()\n",
    "nuboard = initialize_nuboard(cfg)\n",
    "show(nuboard.main_page)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4624979a",
   "metadata": {},
   "source": [
    "## Launch nuBoard (command line - alternative)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "557156ac",
   "metadata": {},
   "source": [
    "nuBoard can be launched alternatively with:\n",
    "```\n",
    "$ python nuplan/planning/script/run_nuboard.py\n",
    "```\n",
    "\n",
    "Simulation files (.nuboard) can be selected under the configuration tab."
   ]
  }
 ],
 "metadata": {
  "interpreter": {
   "hash": "5aea00fa936a67f14323fa2d54163d7dc1f328c617e433b03a680f73ee2dd426"
  },
  "kernelspec": {
   "display_name": "nuplan",
   "language": "python",
   "name": "nuplan"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
